Использование тегов <meta> для отключения кэширования во всех браузерах?
Я прочитал, что, когда у вас нет доступа к заголовкам веб-сервера, вы можете отключить кеш, используя:
<meta http-equiv="Cache-Control" content="no-store" />
Но я также читал, что это не работает в некоторых версиях IE. Есть ли какой-либо набор <meta> теги, которые будут отключать кеш во всех браузерах?
Ответы
Ответ 1
Не вслепую скопируйте это!
Список - это просто примеры разных методов, это не для прямых вставки. Если скопировать, второй будет перезаписывать первый и четвертый перезапишет третий из-за http-equiv объявления И не работают с валидатором W3C. В лучшем случае можно было бы одна из каждого объявления http-equiv; прагма, управление кешем и истекает. Они полностью устарели при использовании современных современных браузеров. После 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.
Для получения правильной информации см. Дубликат, указанный в верхней части страницы!
Ответ 2
Это ссылка на большой пример из практики по недоразумению в отрасли управления кешами.
http://securityevaluators.com/knowledge/case_studies/caching/
В целом, согласно этой статье, только Cache-Control: no-store
распознается Chrome, Firefox и IE. IE распознает другие элементы управления, но Chrome и Firefox этого не делают.
Ответ 3
В IE5 он не работает, но это не большая проблема.
Однако заголовки кэширования ненадежны в мета-элементах; для одного, любые веб-прокси между сайтом и пользователем полностью игнорируют их. Вы всегда должны использовать настоящий HTTP-заголовок для заголовков, таких как Cache-Control и Pragma.
Ответ 4
Прагма - ваш лучший выбор:
<meta http-equiv="Pragma" content="no-cache">
Ответ 5
Я заметил некоторые проблемы кэширования с вызовами службы при повторении одного и того же вызова службы (длинный опрос). Добавление метаданных не помогло. Одним из решений является передача timestamp
, чтобы гарантировать, что ie
считает, что это другой запрос службы http
. Это сработало для меня, поэтому добавление фрагмента кода сценария на стороне сервера для автоматического обновления этого тега не повредит:
<meta http-equiv="expires" content="timestamp">
Ответ 6
Попробуйте использовать
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">