Як змусити Internet Explorer (IE) дійсно перезавантажити сторінку?


154

Під час використання Internet Explorer 8 для тестування веб-програми я часто виявляю, що вона не перезавантажує сторінку, тому я не бачу змін. Це призвело до багато витраченого часу і розчарування, цікаво, чому моє виправлення "не працювало" - коли насправді браузер ніколи не завантажував фіксовану версію.

Я спробував кнопку Оновити. Я спробував F5, Control- F5, Control- R, Control- Shift- R, тримаючи Control, натискаючи кнопку Оновити, все, що я міг придумати, - це фактично не завантажує новий вміст із сервера. Я підтвердив це з Фіддлером.

Як мені сказати IE " Мені все одно, що ви думаєте, що ви кешували, я хочу перезавантажити сторінку - ні, справді, я маю на увазі це на цей раз, чесний богу, я хочу, щоб ви насправді перейшли на сервер і завантажити все знову "?


2
Можливо, використовувати приватне вікно перегляду?
Джош Лі

3
Чи можливо ваш веб-сервер обслуговує стару сторінку (через кеш) замість нової версії? Не має значення, скільки разів ви перезавантажуєтесь у цьому випадку.
Майкл Тодд

1
Майкл, ні, я перевірив у Fiddler, що IE не отримує вміст сторінки з сервера.
EMP

Control + F5 проходить повз Кеш, це дивно, якщо цього не відбувається ....
Tamara Wijsman

2
Найкраще формулювання питання, з яким я стикався поки що на StackExchange!
користувач785529

Відповіді:


126
  1. Виберіть Інструменти >> Параметри Інтернету .
  2. Натисніть кнопку Налаштування в Історії перегляду .
  3. Виберіть перемикач кожного разу, коли я відвідую веб-сторінку .
  4. Клацніть OK, щоб закрити діалогове вікно налаштувань.
  5. Клацніть OK, щоб закрити діалогове вікно "Параметри Інтернету".

3
Якщо ви це зробили, позначте це як відповідь
Earlz

34
Це може зашкодити загальній ефективності веб-перегляду, але лише якщо ви робите загальний перегляд за допомогою IE ...
Joel Mueller

3
Ev: Сторона, що звертається до користувача, зазвичай виправляється шляхом зміни URL-адрес для всіх сценаріїв та таблиць стилів щоразу, коли ви торкаєтесь коду, як правило, додаючи ?version-numberсуфікс рядка запиту.
bobince

4
"Кожен раз, коли я відвідую веб-сторінку", ймовірно, не робить те, що, на вашу думку, робить. Дивіться fiddler2.com/redir/?id=httpperf
EricLaw

6
Я погоджуюся з @EricLaw, якщо ви використовуєте Fiddler, ви побачите, що файли, пов’язані зі сторінкою, іноді не завантажуються, навіть якщо встановлено "Кожен раз, коли я відвідую веб-сторінку". Використовуйте меню панелі інструментів IE: Кеш> Завжди оновити з сервера або кнопку Очистити кеш у Fiddler.
Філіп Нган

43

Оскільки зазначено, що IE8 - це браузер, ви можете натиснути, F12щоб відкрити засоби розробки та вибрати меню кеша вгорі, а потім завжди оновити з сервера, щоб обійти кеш.

Словом, PressF12 . Клацніть Кеш -> Завжди оновити з сервера

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

IE7 також має інструменти розробки, але їх потрібно встановлювати окремо. Ви також можете використовувати інструменти розробки IE8 для запуску браузера в режимі IE7.


+1 для вирішення цього питання без використання глобальної опції.
Маркус Рімер

Як і тут , що все ще не завжди оновлює весь вміст. І я не знаю, що і це перезавантаження добре в URL-адресах - схоже, що кожне вікно часом має свій власний F12. Це більш ретельний спосіб зробити, якщо у вас, якщо у вас є доступ до javascript include.
ruffin

1
Як це зробити в IE 11? Я не можу знайти варіант кешу.
Девід Тілен

4
У IE 11 цей параметр знаходиться під F12 -> Мережа -> 3-й значок зліва.
День

22

Ctrl+ F5в IE перезавантажує сторінку, ігноруючи кеш


26
Ні, це не так. Я знаю, що він ігнорує кеш деякий час, але не весь час.
EMP

16
Ctrl + f5 завжди перезавантажує сторінку з сервера. Що не обов'язково робити, це перезавантажити зайві файли, на які посилається сторінка

2
Досить справедливо - але мені це потрібно, щоб перезавантажити ВСЕ.
EMP

1
CTRL + F5 повинен виконати повне оновлення сторінки та всіх її ресурсів. Дзвінки, здійснені через XMLHTTPRequest пізніше, можуть бути кешовані (якщо ви не хочете, щоб вони були кешовані, надішліть відповідні заголовки без кешу). Одне застереження полягає в тому, що якщо розглядається сторінка XML, вона дійсно завантажується через MSXML, і що DocHost НЕ поважає CTRL + Refresh належним чином.
EricLaw

3
ctrl + f5 не завжди перезавантажує все з сервера. У моїх тестах javascript, що міститься у html-файлі, не завантажується після натискання клавіші ctrl-f5, навіть якщо сторінка була змінена.
rcarver

18

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/ Добре працює для MVC3.0.


1
Неправда. IE6 + повністю поважає всі заголовки, що забороняють кеш. fiddler2.com/redir/?id=httpperf
EricLaw

Це все дуже добре, але це не допомагає WRT питання.
Маттіас Урліхс

6

На вкладці "Мережа" на панелі інструментів веб-розробників є кнопка, щоб легко очистити кеш. Я зазвичай використовую це у випадку, який ви описуєте.

Це не ідеально, оскільки ви, можливо, не хочете очистити весь кеш, але оскільки я не використовую IE для загального перегляду, він працює для мене.


4

Це все ще відбувається в IE9. Дивно, але відповідь Ctrl- Shiftкнопка «Оновити»


Чи функціонує це інакше, ніж кнопка Ctrl-Refresh?
Джон Онстотт

3

Між іншим, проблема, можливо, буде існувати і для глядачів вашого веб-сайту. Наступну ідею я побачив у книзі AJAX ...

Використовуйте PHP, щоб додати випадкову марку до поточної URL-адреси, щоб браузер надумав думати, що це окрема сторінка.


Однак, URL робить некрасивими.
LawrenceC

2

У мене була сама проблема. Я вважаю, що єдиний спосіб зробити це - очистити кеш (Безпека -> Видалити історію перегляду). Поставте прапорець "Тимчасові файли Інтернету".

Сподіваюся, це допомагає.


2

Утримуючи або altабо ctrlклавішу ви натиснете кнопку оновлення.


1

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

Окрім підходу до випадкових токенів, що я прагну завжди робити для повного перезавантаження (запиту) сторінки та всіх її залежних файлів, я просто розміщую курсор у кінці URL-адреси та натискаю Enter. Працює кожен раз ... і я використовую IE 8.


1

F12-> CTRL+ Rтрохи швидше для IE9 +. Як зазначали люди, IE не очищає кеш-пам'ять дуже розумно, як це робить Chrome.


1

Я знаю, що це може здатися дивним ... але одне, що я помітив останнім часом, - це те, що ти інколи отримуєш різні результати залежно від того, ЯК "ти освіжиш". Я бачив таку поведінку:

F5> завантажує з кеша без оновлення,
Alt+ D, ENTER> дійсно оновлює, минаючи кеш.
( Alt+ Dможна замінити клацанням в адресному рядку)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.