- •Файл манифеста
- •Использование манифеста
- •Помещение манифеста на веб-сервер
- •Обновление файла манифеста
- •Очистка кэша браузера
- •Application Cache api — новые возможности и проблемы
- •Общая схема работы Application Cache
- •Хранилище
- •Файл .Manifest
- •Раздел cache
- •Раздел network
- •Подключение файла .Manifest
- •Раздел fallback
- •Замечания по разделам network и fallback
- •Методы объекта applicationCache
- •События объекта applicationCache
- •Детальная схема работы Application Cache
- •Обновление кэша
- •Скрытая проблема обновления
- •Привязка к домену
- •Работа в offline
- •Возможности и проблемы использования Application Cache
- •И что же мы получаем в итоге?
Подключение файла .Manifest
Первоначально необходимо «включить» Application Cache. Это делается путём указания браузеру на файл .manifest с помощью атрибута manifest в теге html:
<!DOCTYPE html>
<html manifest="cache.manifest">
Здесь существуют две особенности:
Application Cache работает только если браузер обрабатывает страницу как HTML5-документ. Поэтому DOCTYPE желательно указывать. Без указанного DOCTYPE могут наблюдаться проблемы в неактуальных версиях браузеров.
Название файла может быть произвольным.
После этого достаточно только предоставить пользователю первый файл .manifest, но и тут нас ожидает два важных момента:
Нужно определить MIME type для файла .manifest. Для этого в файле .htaccess на Вашем сервере необходимо дописать строчку, которая определяет новый тип файлов:
AddType text/cache-manifest .manifest
У браузера Mozilla FireFox есть проблема с обновлением содержания файла manifest, поэтому специально для него нужно дописать конструкцию в .htaccess:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType text/cache-manifest "access plus 0 seconds"
</IfModule>
Проделав эти операции, мы можем заняться содержимым файла .manifest.
Файл .Manifest
Приведём пример такого файла:
CACHE MANIFEST
# Версия 1
images/logo.png
CACHE:
css/default.css
NETWORK:
index.php
FALLBACK:
/ /offline.html
Первая строчка содержит текст CACHE MANIFEST — она означает, что данный файл является файлом manifest. Она обязательна. Комментарии в файле обозначаются с помощью символа решетки #. Пустые строки или строки с пробелами игнорируются и используются только для логического разделения. В примере за комментарием следует, так называемое, «явное вхождение» (images/logo.png) – аналог раздела CACHE. Может использоваться, как и совместно с этим разделом, так и замещая его. Каждое правило (ресурс) должно быть прописано на отдельной строке. Далее следуют три раздела. Название разделов, как и текст CACHE MANIFEST, должны быть в верхнем регистре. Каждый раздел выполняет свои функции. Порядок следования разделов не важен. Должен быть хотя бы один раздел. Разделы могут быть пустыми. Давайте разберем каждый раздел.
Раздел cache
Этот раздел является разделом по умолчанию, т.е. если в файле .manifest нет никаких заголовков («явное вхождение»), то содержание этого файла принимается за содержание раздела CACHE. Внутри этого раздела размещаются пути или URI к кэшируемым ресурсам. Существуют следующие особенности:
Указывается конкретный ресурс (файл), т.е. Вы не можете писать в этом разделе строку вида /images/*
Страница, содержащая определение файла .manifest (страница с ), кэшируется автоматически. Можно добавить атрибут manifest для всех страниц, что бы кэшировать весь сайт, без их перечисления в файле .manifest. Замечание: Mozilla Firefox не кэширует динамически созданную страницу (.php) с атрибутом manifest.
Раздел network
В этом разделе размещаются пути к файлам, которые обязательно должны загружаться из интернета. В этом разделе можно использовать паттерны, т.е. можно написать такую конструкцию:
CACHE MANIFEST
NETWORK:
*
Это разрешит загрузку всех файлов, которые не имеют сохраненной копии. Если требуются какие-то ограничения на загрузку, то можно указывать конкретные файлы (например, index.php) и директории (например, /images/*).
