Автономный доступ становится все более важным для веб-приложений. Хотя все браузеры имеют механизмы кэширования, они ненадежны и не всегда могут работать должным образом. HTML5 использует интерфейс ApplicationCache для решения некоторых проблем, возникающих в автономном режиме.
Использование интерфейса кэша дает вашему приложению три преимущества:
Кэш приложений (также известный как AppCache) позволяет разработчикам указывать, какие файлы должны кэшироваться браузером для доступа автономных пользователей. Даже если пользователь нажмет кнопку обновления в автономном режиме, ваше приложение будет загружаться и работать нормально.
Ссылочный файл манифестаЧтобы включить кэширование приложения, добавьте атрибут манифеста в тег html документа:
Атрибут манифеста может указывать на абсолютный URL-адрес или относительный путь, но абсолютные URL-адреса должны иметь то же происхождение, что и соответствующее веб-приложение. Файл манифеста может использовать любое расширение файла, но должен быть предоставлен с правильным типом MIME (см. ниже).
<html манифест=/cache.manifest> ...</html>
или
<html манифест=http://www.example.com/example.mf> ...</html>
Вам следует добавить атрибут манифеста на каждую страницу вашего веб-приложения, которую вы хотите кэшировать. Если веб-страница не содержит атрибут манифеста, браузер не будет кэшировать страницу (если атрибут явно не указан в файле манифеста).
Это означает, что каждая веб-страница, просматриваемая пользователем и содержащая манифест, будет неявно добавлена в кэш приложения. Поэтому вам не нужно перечислять каждую страницу в вашем инвентаре.
Файлы манифеста должны быть предоставлены в формате MIME text/cache-manifest. Имя суффикса файла можно настроить (рекомендуется .manifest), поэтому нам нужно объявить тип файла с суффиксом .manifest как text/cache-manifest на стороне сервера.
Взяв в качестве примера Apache, нам нужно добавить: AddType text/cache-manifest.manifest в httpd.conf.
Файловая структура манифестаПростой формат списка выглядит следующим образом:
МАНИФЕСТ КЕШАindex.htmlstylesheet.cssimages/logo.pngscripts/main.js
В этом примере будут кэшироваться четыре файла на веб-странице, которая указывает этот файл манифеста.
Вам необходимо обратить внимание на следующие моменты:
Давайте рассмотрим более сложный пример:
МАНИФЕСТ КЭША# 2010-06-18:v2# Явно кэшированные "основные записи".CACHE:/favicon.icoindex.htmlstylesheet.cssimages/logo.pngscripts/main.js# Ресурсы, требующие подключения пользователя к сети.NETWORK:login. php/myapihttp://api.twitter.com# static.html будет обслуживаться, если main.py недоступен# offline.jpg будет будет отображаться вместо всех изображений в images/large/# offline.html и будет отображаться вместо всех других файлов .htmlFALLBACK:/main.py /static.htmlimages/large/ images/offline.jpg*.html /offline.html
Строки, начинающиеся с #, являются строками комментариев, но их можно использовать и для других целей. Например, обновить кеш
Кэш приложения обновляется только при изменении его файла манифеста. Например, если вы измените ресурс изображения или измените функцию JavaScript, эти изменения не будут повторно кэшированы. Вы должны изменить сам файл манифеста, чтобы позволить браузеру обновлять файл кэша. Создание строк комментариев с сгенерированными номерами версий, хэшами файлов или временными метками гарантирует, что у пользователей будет самая последняя версия вашего программного обеспечения.
Вы также можете программно обновить кэш, когда станет доступна новая версия, как описано в разделе «Обновление кэша».
Если на странице представлен файл манифеста кэша, то файл манифеста должен содержать все файлы (css, js, image...), необходимые текущей странице, иначе он не будет загружен, за исключением файлов, которые необходимо кэшировать. , рекомендуется добавить в файл NETWORK. Добавьте звездочку * к элементу, чтобы указать все остальные файлы.
Манифест может включать три разных раздела: CACHE, NETWORK и FALLBACK.
КЭШ:Это часть записи по умолчанию. Файлы, перечисленные под этим заголовком (или файлы, следующие сразу за МАНИФЕСТОМ КЭША), явно кэшируются после первой загрузки.
СЕТЬ:Файлы, перечисленные в этом разделе, представляют собой ресурсы из белого списка, необходимые для подключения к серверу. Все запросы к этим ресурсам обходят кэш независимо от того, находится ли пользователь в автономном режиме. Можно использовать подстановочные знаки.
ОТСТУПАТЬ:Этот раздел является необязательным и определяет резервную страницу, если к ресурсу невозможно получить доступ. Первый URI представляет ресурс, а второй — резервную страницу. Два URI должны быть связаны и иметь то же происхождение, что и файл манифеста. Можно использовать подстановочные знаки.
Примечание. Разделы можно располагать в любом порядке, и каждый раздел может появляться в одном списке несколько раз.
Следующий список определяет полную веб-страницу (offline.html), которая отображается, когда пользователь пытается получить доступ к корню сайта в автономном режиме, а также указывает, что для всех других ресурсов (например, на удаленных сайтах) требуется подключение к Интернету.
МАНИФЕСТ КЭША# 2010-06-18:v3# Явно кэшированные записиindex.htmlcss/style.css# offline.html будут отображаться, если пользователь не в сети. FALLBACK:/// /offline.html# Для всех остальных ресурсов (например, сайтов) требуется пользователь должен быть в сети.NETWORK:*# Дополнительные ресурсы для кэшаCACHE:images/logo1.pngimages/logo2.pngimages/logo3.png
Обратите внимание: HTML-файлы, ссылающиеся на файлы манифеста, автоматически кэшируются. Поэтому вам не обязательно добавлять его в свой список, но мы рекомендуем вам это сделать.
Примечание. Заголовки кэша HTTP и ограничения кэша, установленные на страницах, обслуживаемых через SSL, будут заменены манифестами кэша. Таким образом, веб-страницы, обслуживаемые по протоколу https, могут работать в автономном режиме.
Обновить кешПриложения будут оставаться в кэше в автономном режиме, если не произойдет одно из следующих условий:
Выше приведено все содержание этой статьи. Я надеюсь, что она будет полезна для изучения всеми. Я также надеюсь, что все поддержат сеть VeVb Wulin.