Контроль мета-тегов HTML5 больше не действителен? - PullRequest
27 голосов
/ 12 июля 2011

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

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

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

Ответы [ 4 ]

8 голосов
/ 13 декабря 2012

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

5 голосов
/ 13 декабря 2016

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

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

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

5 голосов
/ 15 февраля 2014

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

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

...

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

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), будут явно кэшироваться после первой загрузки.

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

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

1 голос
/ 13 декабря 2012

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

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

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

...