it-swarm-ru.tech

Как заставить Internet Explorer (IE) действительно перезагрузить страницу?

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

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

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

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

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

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

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

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

42
Brandon

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

22
mfeingold

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.

17
Marcelo Cantos

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

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

6
pkaeding

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

4
PandaWood

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

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

3
Moshe

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

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

2
jchapa

Удерживайте либо alt или же ctrl ключ при нажатии кнопки обновления.

2
niaccm

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

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

1
eidylon

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

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

1
Jerry

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

1
Chris S