2009-12-09 23:52:52 +0000 2009-12-09 23:52:52 +0000
155
155

Как заставить Internet Explorer (IE) РЕАЛЬНО перезагрузить страницу?

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

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

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

Ответы (12)

126
126
126
2009-12-09 23:57:24 +0000
  1. Выберите Инструменты >> Опции Интернета.
  2. Нажмите кнопку Настройки в разделе История просмотра.
  3. Выберите Всегда, когда я посещаю веб-страницу, радиокнопку
  4. Нажмите OK, чтобы закрыть диалоговое окно “Настройки”.
  5. Нажмите OK, чтобы закрыть диалоговое окно “Параметры Интернета”.
43
43
43
2010-07-08 18:30:53 +0000

S

22
22
22
2009-12-10 00:38:04 +0000

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

19
19
19
2009-12-10 01:31:08 +0000

IE очень хочет кэшировать страницы, даже если вы говорите ему не через заголовки кэша. Microsoft KB 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/ Works хорошо работает для MVC3.0.

6
6
6
2009-12-09 23:58:04 +0000
4
4
4
2011-04-01 03:47:03 +0000

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

3
3
3
2009-12-10 00:14:40 +0000

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

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

2
2
2
2009-12-09 23:58:50 +0000

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

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

2
2
2
2010-11-17 15:36:29 +0000

Удерживайте нажатой клавишу alt или ctrl при нажатии кнопки refresh.

1
1
1
2009-12-10 01:49:44 +0000

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

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

1
1
1
2012-08-22 18:35:56 +0000

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

1
1
1
2010-08-12 02:58:55 +0000

I