Как использовать/создать МАНИФЕСТ, обрабатывать события/ошибки appCache и использование swapCache

Как вы используете и создаете файл МАНИФЕСТА (структура),

обрабатывать события и ошибки appCache,

а когда нужен swapCache?


person Aleksander Azizi    schedule 18.11.2013    source источник


Ответы (1)


Использовать кеш приложения с манифестом

Чтобы использовать кеш приложения, вам нужно сослаться на файл манифеста внутри HTML-документа, например:

<html manifest="manifest.appcache"/>

Самому файлу манифеста для работы требуется предопределенный макет.

CACHE MANIFEST является обязательным и должен быть вверху (чтобы, когда браузер проверяет, является ли это манифестом кеша, он возвращал true).

CACHE является необязательным, но рекомендуемым и используется для ссылки на файлы, которые вы хотите кэшировать локально.

FALLBACK является необязательным и используется для указания файлов, которые следует использовать, если указанный (в CAHCE) недоступен. Первый указанный файл (в FALLBACK) — это исходный файл, а второй файл — это тот, который будет использоваться, если исходный файл недоступен.

NETWORK следует считать обязательным, но это не так. Он используется для указания, какие файлы требуют подключения к Интернету (не кэшируются). Использование * (без скобок) указывает, что для всех остальных файлов, кроме упомянутых в CACHE, требуется активное подключение к Интернету.

Пример:

CACHE MANIFEST

CACHE:
YourFirstFile.html
YourSecondFile.png
fallbackFile1.html
fallbackFile2.png
Etc.css

FALLBACK:
YourFirstFile.html fallbackFile1.html
YourSecondFile.png fallbackFile2.png

NETWORK:
*

Манифест (и указанные в нем ресурсы) проверяются только при загрузке страницы (когда пользователь заходит на сайт). Примечание: файл манифеста вводится с учетом регистра.


Обработка событий, инициированных в кеше приложения

Первое, что я хочу сказать, это то, что appCache на самом деле window.applicationCache, поэтому его нужно объявить (var appCache = window.applicationCache;).

Когда пользователь входит на сайт в первый раз (или кеш манифеста отсутствует), запускаются следующие события; если все работает как надо:

Создание кеша приложения с манифестом

Проверка кеша приложений

Загрузка кеша приложений

Ход выполнения кэша приложения (0 из X)

Кэш приложений

Давайте сломаем это.

Первый (Creating Application Cache) определяет кеш «файл/папку», который браузер будет использовать позже.

Второй (Application Cache Checking) checking просматривает файл манифеста, чтобы увидеть, что ему нужно кэшировать.

Третий (Application Cache Downloading) downloading, начинает процесс загрузки файлов, указанных в манифесте.

Четвертый (Application Cache Progress) progress отслеживает ход загрузки (запускается для каждого файла).

Пятый (Application Cache Cached) cached, просто говорит "я закончил" кеширование файлов, и все прошло как надо.

Что это значит? Это означает, что мы можем иметь некоторый контроль над событиями и можем запускать свои собственные события, если захотим.

Таким образом, прослушивая событие progress, мы можем отобразить индикатор выполнения, уведомление с шагами или вообще все, что захотим.

appCache.addEventListener("progress", function(event) {
    console.log(event.loaded + " of " + event.total);
}, false);

Подожди, что я только что сделал?

Я добавил event listener с

http://www.html5rocks.com/en/tutorials/appcache/beginner/ - основы appCache.

http://www.htmlgoodies.com/html5/other/html-5-appcache-by-example.html — пример appCache.

http://www.jefclaes.be/2012/04/visualizing-offline-application-cache.html — манифест FALLBACK.

Требуется ли swapCache() в автономных приложениях HTML5? — информация о swapCache ( читайте и комментарии).

https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching — общая информация о кэше HTTP.

person Aleksander Azizi    schedule 18.11.2013
comment
Если бы это был первый ресурс, который я прочитал при исследовании использования файла манифеста, это сэкономило бы мне часы работы. Отличный и точный конспект! - person Aries51; 09.10.2015