Кеш-манифест в HTML5 - Cache manifest in HTML5

Расширение имени файла
.appcache
Тип интернет-СМИ
текст / кеш-манифест
РазработанКонсорциум World Wide Web
СтандартHTML5
Открытый формат ?да
Интернет сайтhtml.spec.whatwg.org/ multipage/ браузеры.html#не в сети

В манифест кеша в HTML5 это функция хранения программного обеспечения, которая обеспечивает возможность доступа к веб приложение даже без подключения к сети. Он стал частью W3C Рекомендация от 28 октября 2014 г.[1] Эта функция находится в процессе удаления с веб-платформы. В настоящее время настоятельно не рекомендуется использовать какие-либо функции автономных веб-приложений. работники сферы обслуживания вместо этого рекомендуется.

Фон

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

Веб-приложения состоят из ресурсов, обозначенных URL. Это может быть HTML, CSS, JavaScript, изображения или любой другой источник, необходимый для отображения веб-приложения. Их адреса можно скопировать в файл манифеста, который может регулярно обновляться автором веб-приложения с указанием любых новых веб-адресов, которые добавляются или удаляются. При первом подключении к сети веб-браузер прочитает файл манифеста HTML5, загрузит предоставленные ресурсы и сохранит их локально. Затем, при отсутствии сетевого подключения, веб-браузер вместо этого переключится на локальные копии и отобразит веб-приложение в автономном режиме.

Основы

Для работы автономных приложений веб-разработчик должен создать файл манифеста кеша. Если веб-приложение превышает одну страницу, тогда каждая страница должна иметь атрибут manifest, указывающий на манифест кеша. Каждая страница, ссылающаяся на манифест, будет храниться локально.[2] Файл манифеста кеша - это текстовый файл, расположенный в другой части сервера. Он должен обслуживаться с типом контента текст / кеш-манифест[3]

Атрибут manifest = "<путь>" необходимо добавить к html элемент, чтобы файл манифеста кеша работал.[3] Пример:

<!DOCTYPE HTML><html манифест="cache.appcache">  <тело></тело></html>

Аргументом атрибута manifest является относительный или абсолютный путь к файлу манифеста.

Рассмотрим HTML-файл, приведенный ниже. Элемент указывает файл с именем cache.appcache будет содержать список ресурсов (например, test.js, test.css), необходимых для работы этой веб-страницы в автономном режиме. Общие имена для этого файла - cache.manifest и manifest.appcache.

<!—- test.html --><!DOCTYPE HTML><html манифест="cache.appcache"><голова>  <заглавие>Тест</заглавие>  <сценарий src="test.js"></сценарий>  <связь rel="таблица стилей" href="test.css"></голова><тело>  Тестирование файла манифеста.</тело></html>

Синтаксис

В манифест файл должен начинаться со строки КЭШ-МАНИФЕСТ. Комментарии начинаются с #, пробелы и пустые строки игнорируются.[4]

Ниже приведен пример файла манифеста кеша.

Пример 1:

КЭШ-МАНИФЕСТ /test.css/test.js/test.png

В этом файле манифеста перечислены три ресурса: файл CSS, файл JavaScript и изображение PNG. Когда указанный выше файл загружен, браузер загрузит файлы test.css, test.js и test.png из корневого каталога на веб-сервере.[3] В результате, когда сеть не подключена, ресурсы будут доступны для них в автономном режиме.

В манифестах кэша также могут использоваться относительные пути или даже абсолютные URL-адреса, как показано ниже.[4][5][6]

Пример 2:

КЭШ-МАНИФЕСТ / main / features.js / main / settings / index.csshttp: //files/images/scene.jpghttp: //files/images/world.jpg

Заголовки файлов

Файл манифеста кеша состоит из трех заголовков разделов.[3]

  1. Явный раздел с заголовком CACHE.
  2. Раздел онлайн-белого списка с заголовком NETWORK.
  3. Резервный раздел с заголовком FALLBACK.

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

Раздел белого списка онлайн с заголовком СЕТЬ

Пример 3:

КЭШ-МАНИФЕСТ СЕТИ: /checking.cgiCACHE:/test.css/test.js/test.png

Этот пример состоит из заголовков. Строка NETWORK: это начало раздела «белый список онлайн». Ресурсы, перечисленные в этом разделе, никогда не кэшируются и недоступны в автономном режиме.[3] В результате при попытке автономно загрузить ресурс произойдет ошибка.

Заголовок CACHE перемещает в явный раздел: и ресурсы (таблица стилей CSS, JavaScript и файл изображения) можно загружать и использовать в автономном режиме.

Резервный раздел с заголовком FALLBACK

Резервный раздел в файле манифеста кеша может использоваться для замены сетевых ресурсов, которые не могут быть кэшированы или не были успешно кэшированы.[3]

Пример 4:

КЭШ МАНИФЕСТАВАДКА: / /offline.html СЕТЬ:…

В примере 4 резервный раздел состоит из одной строки. т.е. / /offline.html. Одиночный символ (/) перед "offline" будет соответствовать любому шаблону URL на вашем сайте.[3] Если браузер не находит страницу в кэше приложения, приложение отображает страницу /offline.html.

Поток событий

События под ApplicationCache Объект JavaScript.

Если браузер посещает веб-страницу, НЕ видел эту веб-страницу раньше и в результате не распознает файл манифеста, последуют следующие события.[4]

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

Если браузер уже посещал веб-страницу раньше и распознает файл манифеста, последуют следующие события.[4]

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

Если ошибка возникает в любом случае в вышеупомянутых событиях, браузер инициирует событие ошибки и останавливает процесс. Ниже приведены несколько ошибок, которые могут возникнуть при повторной загрузке ресурсов.[5]

  • Страница не найдена (Ошибка HTTP 404 ) или Page Permanently Gone (ошибка HTTP 410).
  • Не удалось загрузить HTML-страницу, указывающую на манифест.[3]
  • Манифест кеша изменился во время обновления.[3]
  • Манифест кеша был изменен, но браузер не загрузил ресурс в манифесте.[3]

Смотрите также

Рекомендации

  1. ^ «Кэш приложения как часть рекомендации W3C». 28 октября 2014 г.. Получено 30 мая 2016.
  2. ^ Бидельман, Эрик (29 октября 2013 г.). «Руководство для начинающих по использованию кэша приложения». Получено 23 апреля 2014.
  3. ^ а б c d е ж грамм час я j Пилигрим, Марк (2010). HTML5 в рабочем состоянии. О'Рейли. Архивировано из оригинал на 2011-10-03. Получено 2018-11-16.
  4. ^ а б c d "Манифесты W3 HTML5". HTML5. Получено 3 апреля 2011.
  5. ^ а б «Дев.Опера». HTML5. Получено 3 апреля 2011.
  6. ^ "WHATWG". HTML5. Получено 3 апреля 2011.

внешняя ссылка