148

При использовании Internet Explorer 8 для тестирования моего веб-приложения я часто обнаруживаю, что оно не перезагружает страницу, поэтому я не вижу своих изменений. Это привело к большому количеству потерянного времени и разочарованию, задающимся вопросом, почему мое исправление «не сработало», когда на самом деле браузер никогда не загружал фиксированную версию.

Я попробовал кнопку Обновить. Я пробовал F5, Control - F5, Control - R, Control - Shift - R, удерживая Control, нажимая кнопку «Обновить», все, о чем я мог подумать - он фактически не загружает новое содержимое с сервера. Я подтвердил это с Fiddler.

Как мне сказать IE " Мне все равно, что вы думаете, что вы кешировали, я хочу перезагрузить страницу - нет, правда, я имею в виду это на этот раз, честно говоря, я хочу, чтобы вы действительно пошли на сервер и скачать все снова "?

12 ответов12

121
  1. Выберите Инструменты >> Свойства обозревателя.
  2. Нажмите кнопку Настройки в Истории просмотра.
  3. Выберите переключатель Каждый раз, когда я посещаю веб-страницу.
  4. Нажмите кнопку ОК, чтобы закрыть диалоговое окно «Настройки».
  5. Нажмите кнопку ОК, чтобы закрыть диалоговое окно «Свойства обозревателя».
42

Поскольку заявлено, что IE8 является браузером, вы можете нажать F12, чтобы открыть инструменты разработки и выбрать меню Cache вверху, а затем всегда обновлять с сервера, чтобы обойти кеш.

Короче, нажмите F12. Нажмите Кэш -> Всегда обновлять с сервера

Здесь вы также можете просто очистить кеш, если это желаемое действие. Параметр всегда обновлять не является глобальным параметром и не повлияет на общую производительность в IE.

IE7 также имеет инструменты разработки, но они должны быть установлены отдельно. Вы также можете использовать инструменты разработки IE8 для запуска браузера в режиме IE7.

22

Ctrl+F5 в IE перезагружает страницу, игнорируя кеш

17

IE очень хочет кешировать страницы, даже если вы говорите, что это не нужно делать через заголовки кеша. Microsoft KB 234067 объясняет необходимые заклинания. Короче говоря, вам нужно поставить следующие заголовки.

Pragma: no-cache
Cache-Control: no-cache
Expires: <some time in the past>

Установка Expires = -1 (как рекомендуется в статье базы знаний) должна работать для большинства фреймворков; браузеры должны обрабатывать недопустимые форматы дат как устаревшие (RFC 2616).

В .NET вы можете сделать это на постраничной детализации, используя этот набор методов перед вызовом веб-страницы:

HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();

см .:http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ Хорошо работает для MVC3.0.

6

На панели инструментов веб-разработчика есть кнопка, чтобы легко очистить кеш. Я обычно использую это в случае, если вы описываете.

Это не идеально, так как вы можете не захотеть очистить весь кеш, но, поскольку я не использую IE для общего просмотра, это работает для меня.

4

Это все еще происходит в IE9. Удивительно, но ответ Ctrl - Shift - кнопка «Обновить»

3

Кстати, проблема, возможно, будет существовать и для зрителей вашего сайта. Я увидел следующую идею в книге AJAX ...

Используйте PHP, чтобы добавить случайный токен к текущему URL-адресу, чтобы браузер обманом решил, что это отдельная страница.

2

У меня была такая же проблема. Я считаю, что единственный способ сделать это - очистить кеш (Безопасность -> Удалить историю просмотров). Только отметьте «Временные интернет-файлы».

Надеюсь это поможет.

2

Удерживая нажатой клавишу « Alt» или « Ctrl» , нажмите кнопку «Обновить».

1

Я знаю, что это может показаться немного странным ... но в последнее время я заметил одну вещь: иногда вы получаете разные результаты в зависимости от того, КАК вы "обновляете". Я видел следующее поведение:

F5 > загружает из кеша без обновления,
Alt+D, ENTER > действительно обновляет в обход кеша.
(Alt+D можно заменить нажатием в адресной строке)

1

Я согласен с тем, что добавление случайного токена в URL-адрес является наиболее надежным решением, и после его внедрения пользователю не нужно ничего делать.

Помимо подхода со случайным токеном, который я обычно делаю для принудительной полной перезагрузки (запроса) страницы и всех ее зависимых файлов, я просто помещаю курсор в конец URL и нажимаю Enter. Работает каждый раз ... и я использую IE 8.

1

F12 -> CTRL+R немного быстрее для IE9+. Как уже упоминалось, IE не очень хорошо очищает кэш, как это делает Chrome.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .