Логотип StingRay

Поделиться
FacebookFacebookRSSTwitterYouTubeВ контактеОдноклассники
FacebookFacebookRSSTwitterYouTubeВ контактеОдноклассники
Силуэт человека

Обновление страниц в разных Интернет-обозревателях

Когда возникает необходимость обновить текущую открытую в Интернет-обозревателе страницу (например, ожидая увидеть на ней какие-либо изменения – особенно часто это нужно веб-разработчикам), есть несколько способов сделать это: графической кнопкой на панели инструментов Интернет-оброзревателя (Обновить) или различными комбинациями клавиш на клавиатуре (F5, Ctrl+F5, Ctrl+R). Существует расхожее предположение о том, что именно комбинация клавиш Ctrl+F5 осуществляет максимально «жёсткое» (игнорируя кэш) и глубокое обновление (якобы, игнорируя даже кэш общего прокси-сервера вашей локальной сети – но это, конечно же, чушь полная). И существует известный факт, что эта комбинация клавиш почему-то не работает по умолчанию в Opera (хотя в каких-то версиях и/или экземплярах она вызывает обновление всех вкладок).

Когда любопытства ради я спросил у одного своего коллеги, предпочитающего в качестве Интернет-обозревателя именно Opera, почему в ней не работает Ctrl+F5, он удивился и ответил, что, вроде как, работает – обновляет все вкладки. Я ещё раз проверил и убедился – в моей Opera 11.51 это не работает вообще никак. А если бы и работало как обновление всех вкладок, то это всё равно было бы не то, не так, как это работает в других Интернет-обозревателях (в частности, в Firefox и Internet Explorer).

И тогда я задал вопрос поисковым системам: «Почему Ctrl+F5 в Opera не работает?» Однозначного ответа получить не удалось, но зато я нашёл интересное рассуждение на эту тему, которое и сподвигло меня на небольшое исследование и написание данной министатьи по его результатам.

Я написал небольшой серверный сценарий, который просто выводил все полученные им HTTP-заголовки, и осуществил обновление его вывода всеми перечисленными способами во всех упомянутых Интернет-обозревателях:

Способ \ обозреватель Firefox 6.0 Internet Explorer 8.0 Opera 11.51
Обновить HTTP_CACHE_CONTROL:max-age=0   HTTP_CACHE_CONTROL:no-cache
F5 HTTP_CACHE_CONTROL:max-age=0   HTTP_CACHE_CONTROL:no-cache
Ctrl+F5 HTTP_CACHE_CONTROL:max-age=0
HTTP_PRAGMA:no-cache
HTTP_CACHE_CONTROL:no-cache Не работает
Ctrl+R HTTP_CACHE_CONTROL:max-age=0   HTTP_CACHE_CONTROL:no-cache

Какие тут можно сделать выводы:

  • графическая кнопка Обновить, клавиша F5 и комбинация клавиш Ctrl+R равнозначны во всех Интернет-обозревателях;
  • комбинация клавиш Ctrl+F5 отличается от Обновить/F5/Ctrl+R во всех Интернет-обозревателях и, кроме Opera (где Ctrl+F5 не работает), действительно вызывает более «жёсткое» обновление страницы;
  • учитывая, что комбинация клавиш Ctrl+F5 в Firefox посылает не один «обновляющий» HTTP-заголовок, а сразу два (HTTP_CACHE_CONTROL и HTTP_PRAGMA), можно предположить, что обновление страницы ею для некоторых веб-серверов может быть ещё более «жёстким».

P.S. Учитывая отсутствие в Opera такого «жёсткого» обновления страницы и однообразия обновляющих HTTP-заголовков (всегда только HTTP_CACHE_CONTROL:no-cache), неудивительно, что в своё время мне так до конца и не удалось победить её кэширование CAPTCHA-картинки моего сайта, несмотря ни на добавление к адресу картинки фиктивных параметров, ни на отдачу вместе с ней дополнительных HTTP-заголовков Last-Modified, Pragma:no-cache и CacheControl:no-cache,must-revalidate. :-(

Добавьте свой комментарий или войдите, чтобы подписаться/отписаться.
Имя: OpenId
Результат операции:
Предпросмотр
Загрузка…