Подтвердить что ты не робот

Кэш-контроль метатег html5 больше недействителен?

Как определить

<meta http-equiv="cache-control" content="no-cache" />

в HTML5? Он больше не действует в соответствии с W3C Validator и документацией.

4b9b3361

Ответ 1

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

Ответ 2

В начале кода вы должны использовать это:

<!DOCTYPE html>
<html manifest="cache.manifest">

...

Затем создайте файл cache.manifest с содержимым того, что вы хотите кэшировать i.e

CACHE MANIFEST
# 2010-06-18:v2

# Explicitly cached 'master entries'.
CACHE:
/favicon.ico
index.html
stylesheet.css
images/logo.png
scripts/main.js

# Resources that require the user to be online.
NETWORK:
*

# static.html will be served if main.py is inaccessible
# offline.jpg will be served in place of all images in images/large/
# offline.html will be served in place of all other .html files
FALLBACK:
/main.py /static.html
images/large/ images/offline.jpg

В манифесте могут быть три различных раздела: CACHE, NETWORK и FALLBACK.

CACHE:  Это раздел по умолчанию для записей. Файлы, перечисленные в этом заголовке (или сразу после CACHE MANIFEST), будут явно кэшированы после их загрузки в первый раз.

СЕТЬ:  Файлы, перечисленные в этом разделе, могут поступать из сети, если они не находятся в кеше, иначе сеть не будет использоваться, даже если пользователь подключен к сети. Здесь вы можете указывать конкретные URL-адреса белого списка или просто ", что позволяет использовать все URL-адреса. Большинство сайтов необходимо" ".

FALLBACK:  Необязательный раздел, указывающий резервные страницы, если ресурс недоступен. Первым URI является ресурс, второй - резерв, используемый при сбое сетевого запроса или ошибках. Оба URI должны иметь тот же источник, что и файл манифеста. Вы можете захватывать определенные URL-адреса, а также префиксы URL. "images/large/" будет отображать сбои от URL-адресов, таких как "images/large/whatever/img.jpg".

Ответ 3

Нет HTML-решения. Кэш приложения Mozilla (cache.manifest) устарел. На сайте кэша приложений говорится:

Эта функция удалена из веб-стандартов. Хотя некоторые браузеры все еще могут его поддерживать, он находится в процессе отбрасывания. Избегайте его использования и, если это возможно, обновите существующий код.... Используйте Рабочие службы вместо.

Кроме того, я предлагаю вам использовать HTTP Cache-Control для решения проблем с кешем.

Ответ 4

Нет решения HTML, потому что это не проблема разметки. Кэширование - это действие на ресурсе, а не часть самого определения ресурса.

Как говорили другие, HTTP-заголовки - лучший способ контролировать кеши, потому что они наблюдаются всеми кешами - теги <meta> наблюдаются только в кэшах браузера. Они должны быть установлены с помощью вашего сервера/веб-инфраструктуры.

Тем не менее, я не удивлюсь, если браузеры все еще наблюдают <meta http-equiv="cache-control" content="no-cache"> для страниц с типом HTML5.