Использование тегов <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">