IE6 и кеширование
Кажется, что IE6 игнорирует любую форму аннулирования кэша, отправляемого через заголовки http, я пытался установить Pragma на No Cache и установить Cache Expiration на текущее время, но в IE6 обратный вызов всегда будет вызывать кэшированную версию страницы I Я работаю над.
Есть ли конкретный заголовок HTTP, который IE6 тоже слушает?
6 ответов
Cache-Control: private, max-age=0
должен это исправить. Из классического ASP это делается с Response.Expires=-1
,
Имейте в виду, что при тестировании только то, что ваш сервер обслуживает страницы с отключенным кэшированием, не означает, что браузер будет подчиняться тому, что, когда ему говорят, что старая кэшированная страница, как было сказано, может кешироваться. Очистите кеш или используйте клавишу F5, чтобы перезагрузить эту страницу.
Кроме того, в тех случаях, когда сервер обслуживает кэшированный контент, вы можете использовать Ctrl+F5, чтобы сигнализировать серверу не обслуживать его из кэша.
Ты должен быть осторожен. Если вы используете AJAX через XMLHttpRequest (XHR), то "рекомендации" кеша, установленные в заголовке, не соблюдаются ie6.
Исправление заключается в добавлении случайного числа к URL-запросам, используемым в AJAX-запросах. Например:
http://test.com?nonce=0123
Хорошим генератором для этого является функция UTC(), которая возвращает уникальную временную метку для браузера пользователя... то есть, если они не связываются со своими системными часами.
Небольшое примечание: по своему опыту я знаю, что IE6 будет загружать Javascript из кеша, даже если он будет вынужден перезагрузить страницу через ctrl-f5. Так что если вы работаете над Javascript, всегда очищайте кеш.
Панель инструментов веб-разработчика IE может очень помочь в этом. Там есть кнопка для очистки кеша.
См. Вопрос: Убедитесь, что веб-страница не кэшируется во всех браузерах. Как контролировать кэширование веб-страниц во всех браузерах? Я думаю, что это должно помочь с вашей проблемой тоже.
Содержимое с "Content-Encoding: gzip" всегда кэшируется, хотя вы используете "Cache-Control: no-cache"
http://support.microsoft.com/kb/321722
Вы также можете отключить gzip только для IE6
Вы пытались установить ETag в шапке? Это довольно надежный способ показать, что контент изменился. W3c Spec & Wikipedia
Кроме того, немного более грубым способом является добавление в запрос случайного параметра строки запроса, такого как текущая метка времени Unix. Как я уже сказал, сырой, но тогда IE6 не самый тонкий из зверей