Детальная схема работы Application Cache
· Когда браузер в первый раз загружает документ с указанием атрибута manifest, то происходит дополнительный запрос и получение файла.manifest (событие checking). При первом посещении, когда кэша этого документа ещё не существует, происходит загрузка в кэш всех файлов согласно правилам, указанным в файле.manifest (событие downloading). Файлы могут загружаться из стандартного кэша браузера, что эффективно при изменении правил. В итоге создаётся первое хранилище данных кэша manifest (событие cached). · При повторном обращении к тому же документу он загружается из кэша, так как был ранее кэширован (документы с атрибутом manifest всегда кэшируются). Обращения к серверу в этот момент не происходит. Объект управления кэшем для данного документа window.applicationCache после загрузки документа инициирует проверку изменения файла.manifest и посылает запрос на сервер (событие checking). Сервер отвечает об изменении. · Если файл.manifest не изменился (событие noupdate), то загрузка выполнена и приложение продолжит работу в намеченном направлении. Запросов к серверу на получение кэшированных файлов не производиться. · Если файл.manifest изменился, то выполняется стандартная загрузка документа и начинается фоновая загрузка кэша (событие downloading). После выполнения загрузки (событие updateready) перерисовки страницы не происходит. Обновленные данные кэша будут использоваться только при следующей загрузке документа. · Если при загрузке файла.manifest произошла ошибка или он содержит ошибки, например, ссылка на несуществующий файл (событие error), то загрузка производиться обычном режиме с использованием сохранённых копий ресурсов. При этом кэш не затрагивается и браузер его не использует.
|