Кеш-манифест в HTML5 - Cache manifest in HTML5
Расширение имени файла | .appcache |
---|---|
Тип интернет-СМИ | текст / кеш-манифест |
Разработан | Консорциум World Wide Web |
Стандарт | HTML5 |
Открытый формат ? | да |
Интернет сайт | 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]
- Явный раздел с заголовком CACHE.
- Раздел онлайн-белого списка с заголовком NETWORK.
- Резервный раздел с заголовком 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]
Смотрите также
- HTML5
- Автономный читатель
- Веб-кеш
- Википедия: Обход кеша
Рекомендации
- ^ «Кэш приложения как часть рекомендации W3C». 28 октября 2014 г.. Получено 30 мая 2016.
- ^ Бидельман, Эрик (29 октября 2013 г.). «Руководство для начинающих по использованию кэша приложения». Получено 23 апреля 2014.
- ^ а б c d е ж грамм час я j Пилигрим, Марк (2010). HTML5 в рабочем состоянии. О'Рейли. Архивировано из оригинал на 2011-10-03. Получено 2018-11-16.
- ^ а б c d "Манифесты W3 HTML5". HTML5. Получено 3 апреля 2011.
- ^ а б «Дев.Опера». HTML5. Получено 3 апреля 2011.
- ^ "WHATWG". HTML5. Получено 3 апреля 2011.