Offline Application Cache

14 Січ
14.01.2013

Art Depo Programming Tips

Manifest — файл описания кэша (cache manifest file) — основной компонент оффлайнового кэша приложения.

Данный файл располагается на сервере и посылается клиентскому устройству. В нем описаны файлы, которые должны быть загружены и сохранены на устройстве пользователя. После загрузки файлов и повторного запуска приложения, оно будет работать автономно.
Зайдя на веб-приложение по гиперссылке, приложение проверит факт изменения (содержимого) файла манифеста. Если изменение имело место, в фоновом побайтовом режиме загрузятся (обновятся) все файлы, описанные в нем, во временный кэш. Если при загрузке произойдет ошибка, временный кэш автоматически удалится, и работать будет старая версия приложения. Иначе, новые файлы будут использоваться при следующей загрузке приложения.

Объявление файла в разметке

<html manifest="site.manifest">

Чтоб браузер распознавал файл описания необходимо указать тип содержимого. Для веб-сервера Apache в файле .htaccess достаточно прописать:

AddType text/cache-manifest .manifest

Структура файла site.manifest

CACHE MANIFEST /css/screen.css /css/offline.css /js/screen.js http://example.com/css/styles.css NETWORK: # перечисленные в этом разделе файлы будут требовать #постоянный доступ к сети. В офлайновом режиме они не будут доступны. /inedx.html FALLBACK: #здесь указывается замена неработающих ресурсов на резервные /inedx.html /offline.html 

Если файлов, которые должны быть описаны в файле описания много, файл можно создавать динамически, например, с помощью PHP скрипта (Creating Cache Manifest File using PHP). Его можно прописать в качестве файла манифеста, а внутри посылать заголовок и выводить список файлов.

Отладка приложений, которые используют офлайновый кэш приложения довольно сложная. Чтоб понимать в какой момент и что происходит, можно добавить в программу JS-код, который будет слушать все возможные события и выводить о них информацию в консоль(Using the application cache, Руководство для начинающих). При возникновении серьезных проблем при отладке приложения, можно ознакомиться с содержимым базы данных кэша приложения (формат SQL).

Браузеры могут иметь разные ограничения памяти для кэшированных данных (у некоторых это ограничение составляет 5Mb).

Теги: , ,