Использование тегов для отключения кэширования во всех браузерах? [дубликат]

этот вопрос уже есть ответ здесь:

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

<meta http-equiv="Cache-Control" content="no-store" />

но я также читал, что это не работает в некоторых версиях IE. Являются есть ли набор тегов , которые отключат кэш во всех браузерах?

6 ответов


для современных веб-браузеров (после IE9)

см. дубликат, указанный в верхней части страницы для получения правильной информации!

Посмотреть ответ здесь: как управлять кэшированием веб-страниц во всех браузерах?


для IE9 и до

не слепо копировать вставить это!

список - это просто примеры различных методов, это не для прямого вставка. При копировании второй перезапишет первый и четвертый перезаписал бы третий из-за http-equiv объявления и сбой с валидатором W3C. В лучшем случае, можно было бы одно из каждого объявления http-equiv; pragma, Cache-control и истекает. Они полностью устарели при использовании современных современных браузеров. После IE9 в любом случае. Chrome и Firefox специально не работают с ними, как вы ожидаете, если вообще.

<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />

на самом деле не используйте их вообще!

заголовки кэширования ненадежны в мета-элементах; для одного, любые веб-прокси между сайтом и пользователем будут полностью игнорироваться их. Вы всегда должны использовать реальный HTTP-заголовок для заголовков, таких как Cache-Control и Pragma.


это ссылка на большой пример исследования по всей отрасли непонимания контроля кэшей.

http://securityevaluators.com/knowledge/case_studies/caching/

В общем, согласно этой статье, только Cache-Control: no-store распознается Chrome, Firefox и IE. IE распознает другие элементы управления, но Chrome и Firefox этого не делают.


Он не работает в IE5, но это не большая проблема.

однако заголовки кэширования ненадежны в мета-элементах; во-первых, любые веб-прокси между сайтом и пользователем будут полностью игнорировать их. Вы всегда должны использовать реальный HTTP-заголовок для заголовков, таких как Cache-Control и Pragma.


pragma-ваш лучший выбор:

<meta http-equiv="Pragma" content="no-cache">

Я заметил некоторые проблемы с кэшированием вызовов службы при повторении одного и того же вызова службы (длинный опрос). Добавление метаданных не помогло. Одно из решений-передать timestamp для обеспечения ie думает, что это разные http запрос на обслуживание. Это сработало для меня, поэтому добавление фрагмента кода скрипта на стороне сервера для автоматического обновления этого тега не повредит:

<meta http-equiv="expires" content="timestamp">


попробуйте использовать

    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="-1">