Манифест кэша в HTML5
Расширение имени файла | .appcache |
---|---|
Тип интернет-СМИ | текст/кеш-манифест |
Разработано | Консорциум Всемирной паутины |
Стандартный | HTML5 |
Открытый формат ? | Да |
Веб-сайт | HTML |
Манифест кэша в HTML5 представлял собой функцию программного хранилища, которая обеспечивала возможность доступа к веб-приложению даже без подключения к сети. Он стал частью Рекомендации W3C 28 октября 2014 года. [1]
С 2021 года эта технология больше не имеет широкого распространения. Он был удален из Firefox 85, [2] и отключен по умолчанию в Chrome 84 и удален в Chrome 95. [3] Использование каких-либо функций автономного веб-приложения в настоящее время настоятельно не рекомендуется, использовать сервис-воркеров . вместо этого рекомендуется [4] Манифесты кэша отличаются от манифестов веб-приложений — формата файлов на основе JSON, который является частью прогрессивной технологии веб-приложений , и по состоянию на 2023 г. [update] в настоящее время активен и проходит процесс стандартизации в W3C . [5]
Фон
[ редактировать ]Веб-приложения состоят из веб-страниц, которые необходимо загрузить из сети. Для этого должно быть подключение к сети. Однако во многих случаях пользователи не могут подключиться к сети по независящим от них обстоятельствам. HTML5 предоставляет возможность доступа к веб-приложению даже без подключения к сети, используя манифест кэша .
Веб-приложения состоят из ресурсов, идентифицируемых URL-адресами . Это могут быть HTML , CSS , JavaScript , изображения или любой другой источник, необходимый для отображения веб-приложения. Их адреса можно скопировать в файл манифеста , который может регулярно обновляться автором веб-приложения, указывая любые новые веб-адреса, которые добавляются или удаляются. При первом подключении к сети веб-браузер прочитает файл манифеста HTML5, загрузит предоставленные ресурсы и сохранит их локально. Затем, при отсутствии сетевого подключения, веб-браузер вместо этого переключится на локальные копии и отобразит веб-приложение в автономном режиме.
Основы
[ редактировать ]Чтобы автономные приложения работали, веб-разработчик должен создать файл манифеста кэша. Если веб-приложение превышает одну страницу, каждая страница должна иметь атрибут манифеста, указывающий на манифест кэша. Каждая страница, ссылающаяся на манифест, будет храниться локально. [6] Файл манифеста кэша представляет собой текстовый файл, расположенный в другой части сервера. Он должен обслуживаться с типом контента text/cache-manifest
[7]
Атрибут manifest="<path>"
необходимо добавить в элемент html , чтобы файл манифеста кэша работал. [7] Пример:
<!DOCTYPE HTML><html manifest="cache.appcache"> <body> … </body></html>
Аргументом атрибута манифеста является относительный или абсолютный путь к файлу манифеста.
Рассмотрим HTML-файл, приведенный ниже. Элемент <html> указывает, что файл с именем кэш.appcache будет содержать список ресурсов (т. е. test.js, test.css), необходимых для работы этой веб-страницы в автономном режиме. Общие имена этого файла — кэш.манифест и манифест.appcache.
<!—- test.html --><!DOCTYPE HTML><html manifest="cache.appcache"><head> <title>Test</title> <script src="test.js"></script> <link rel="stylesheet" href="test.css"></head><body> Testing the manifest file.</body></html>
Синтаксис
[ редактировать ]Файл манифеста должен начинаться со строки CACHE MANIFEST
. Комментарии начинаются с #
, пробелы и пустые строки игнорируются. [8]
Ниже приведен пример файла манифеста кэша.
Пример 1:
CACHE MANIFEST /test.css/test.js/test.png
В этом файле манифеста перечислены три ресурса: файл CSS, файл JavaScript и изображение PNG. Когда вышеуказанный файл будет загружен, браузер загрузит файлы test.css, test.js и test.png из корневого каталога веб-сервера. [7] В результате, когда сеть не подключена, ресурсы будут доступны в автономном режиме.
Манифесты кэша также могут использовать относительные пути или даже абсолютные URL-адреса, как показано ниже. [8] [9] [10]
Пример 2:
CACHE MANIFEST/main/features.js/main/settings/index.csshttp://files/images/scene.jpghttp://files/images/world.jpg
Заголовки файлов
[ редактировать ]Файл манифеста кэша состоит из трех заголовков разделов. [7]
- Явный раздел с заголовком CACHE.
- Раздел белого списка онлайн с заголовком СЕТЬ.
- Раздел резервного копирования с заголовком FALLBACK.
Примечание. В приведенных выше примерах 1 и 2 не указан заголовок раздела, поэтому по умолчанию они считаются явным разделом.
Раздел белого списка онлайн с заголовком СЕТЬ
[ редактировать ]Пример 3:
CACHE MANIFEST NETWORK: /checking.cgiCACHE:/test.css/test.js/test.png
Этот пример состоит из заголовков. Строка СЕТЬ: является началом раздела «белый онлайн-список». Ресурсы, перечисленные в этом разделе, никогда не кэшируются и недоступны в автономном режиме. [7] В результате при попытке загрузки ресурса в автономном режиме произойдет ошибка.
В заголовке CACHE происходит переход к явному разделу: ресурсы (таблица стилей CSS, JavaScript и файл изображения) можно загрузить и использовать в автономном режиме.
Резервный раздел с заголовком FALLBACK.
[ редактировать ]Резервный раздел в файле манифеста кэша можно использовать для замены онлайн-ресурсов, которые не могут быть кэшированы или не были успешно кэшированы. [7]
Пример 4:
CACHE MANIFESTFALLBACK:/ /offline.html NETWORK:…
В примере 4 резервный раздел состоит из одной строки. т.е. //offline.html . Одиночный символ ( / ) перед словом «оффлайн» будет соответствовать любому шаблону URL-адреса на вашем сайте. [7] Если браузер не находит страницу в кэше приложений, приложение отобразит страницу /offline.html.
Поток событий
[ редактировать ]Мероприятия находятся под ApplicationCache
Объект JavaScript.
Если браузер посещает веб-страницу, НЕ видел ее раньше и в результате не распознает файл манифеста, произойдут следующие события. [8]
Checking
Событие — происходит, когда браузер посещает веб-страницу и считывает атрибут манифеста элемента <html>.Downloading
Событие — оно загрузит все ресурсы, указанные в файле манифеста.Progress
Событие — содержит информацию о том, сколько файлов было загружено и сколько файлов осталось загрузить.Cached
Событие — происходит после того, как все файлы загружены и автономное веб-приложение готово к использованию в автономном режиме.
Если браузер ранее посещал веб-страницу и распознает файл манифеста, произойдут следующие события. [8]
Noupdate
Событие — это произойдет, если манифест кэша не изменился.Downloading
Событие — если манифест кэша изменил ресурсы, файлы будут загружены снова.Progress
Событие — содержит информацию о том, сколько файлов было загружено и сколько файлов осталось загрузить.Updateready
Событие — после завершения повторной загрузки срабатывает это событие, указывающее на то, что новая офлайн-версия готова к использованию.
Если в любом из указанных выше событий возникает ошибка, браузер вызовет событие ошибки и остановит процесс. Ниже приведены несколько ошибок, которые могут возникнуть при повторной загрузке ресурсов. [9]
- Страница не найдена ( ошибка HTTP 404 ) или страница исчезла навсегда (ошибка HTTP 410).
- Не удалось загрузить HTML-страницу, указывающую на манифест. [7]
- Манифест кэша изменился во время обновления. [7]
- Манифест кэша был изменен, но браузер не загрузил ресурс в манифесте. [7]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Кэш приложений как часть Рекомендации W3C» . 28 октября 2014 года . Проверено 30 мая 2016 г. .
- ^ «Использование кэша приложения — HTML: язык разметки гипертекста | MDN» . http://developer.mozilla.org . Архивировано из оригинала 15 февраля 2019 г. Проверено 11 апреля 2021 г.
- ^ «Подготовка к удалению AppCache» . веб.разработчик . Архивировано из оригинала 20 мая 2020 г. Проверено 02 сентября 2021 г.
- ^ «Окно.applicationCache» . Веб-документы MDN . Мозилла. Архивировано из оригинала 2 мая 2023 г. Проверено 29 декабря 2020 г.
- ^ «Манифест веб-приложения» . www.w3.org . Проверено 9 апреля 2023 г.
- ^ Бидельман, Эрик (29 октября 2013 г.). «Руководство для начинающих по использованию кэша приложений» . Проверено 23 апреля 2014 г.
- ^ Перейти обратно: а б с д и ж г час я дж Пилигрим, Марк (2010). HTML5 готов к работе . О'Рейли. Архивировано из оригинала 3 октября 2011 г. Проверено 16 ноября 2018 г.
- ^ Перейти обратно: а б с д «Манифесты W3 HTML5» . HTML5 . Архивировано из оригинала 24 декабря 2010 года . Проверено 3 апреля 2011 г.
- ^ Перейти обратно: а б «Дев.Опера» . HTML5 . Проверено 3 апреля 2011 г.
- ^ "ЧТОРГ" . HTML5 . Архивировано из оригинала 14 апреля 2011 года . Проверено 3 апреля 2011 г.