Как вынудить Internet Explorer (IE) ДЕЙСТВИТЕЛЬНО перезагрузить страницу?

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

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

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

155
задан 20.03.2014, 12:27

11 ответов

  1. Выберите Инструменты>> интернет-Опции.
  2. Нажмите кнопку Settings в Просмотре Истории.
  3. Выберите Каждый раз, когда я посещаю переключатель веб-страницы.
  4. Нажмите "OK" для закрытия диалогового окна Настроек.
  5. Нажмите "OK" для закрытия интернет-диалогового окна Опций.
126
ответ дан 07.12.2019, 07:44

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

22
ответ дан 07.12.2019, 07:44

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

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

Установка Expires = -1 (как рекомендуется в статье KB), должен работать на большинство платформ; браузеры требуются, чтобы рассматривать неправильные форматы даты, как являющиеся в прошлом (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.

19
ответ дан 07.12.2019, 07:44

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

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

6
ответ дан 07.12.2019, 07:44

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

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

3
ответ дан 07.12.2019, 07:44

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

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

2
ответ дан 07.12.2019, 07:44

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

F5> загрузки из кэша без обновления,
Alt+D, ВОЙДИТЕ>, действительно обновляет обход кэша.
(Alt+D может быть заменен нажатием в строке поиска),

1
ответ дан 07.12.2019, 07:44

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

Короче говоря, Нажатие F12. Нажмите Cache-> Always Refresh from Server

Можно просто очистить кэш здесь также, если это - желаемое действие. Всегда опция обновления не является глобальной опцией и не препятствует общей производительности в IE.

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

43
ответ дан 07.12.2019, 07:44

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

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

1
ответ дан 07.12.2019, 07:44

Удержите или клавишу Alt или клавишу Ctrl, поскольку Вы нажимаете кнопку Обновить.

2
ответ дан 07.12.2019, 07:44

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

4
ответ дан 07.12.2019, 07:44

Теги

Похожие вопросы