Кэширование в веб-браузере - это когда браузеры решают хранить файлы локально для повышения производительности. HTTP позволяет веб-серверам предлагать браузерам, как долго хранить файлы, и позволяет браузерам спрашивать сервер, изменился ли файл (чтобы они могли избежать его повторной загрузки).
Однако он не предназначен для надежного хранения ресурсов, необходимых для автономного приложения. В конечном счете, браузер сам решает, кэширует ли он файлы и как долго. А браузеры часто перестают использовать свою кэшированную версию, если не могут связаться с сервером, чтобы проверить его актуальность.
Спецификация автономных веб-приложений HTML5 предоставляет веб-авторам возможность сообщать браузерам, что хранить для автономного доступа, и требует, чтобы браузеры обновляли эти файлы, когда они находятся в сети. Он также предоставляет свойство DOM, которое сообщает разработчику, подключен ли браузер к сети или нет, а также события, которые запускаются при изменении состояния в сети.
Как описывает Питер в своем ответе , это позволяет разработчикам веб-приложений сохранять введенные пользователем данные, пока пользователь находится в автономном режиме, а затем синхронизировать их с сервером, когда они снова в сети. Разработчик должен выполнить это хранение и синхронизацию вручную, так как браузер предоставляет только события, указывающие онлайн-статус, но если браузер также поддерживает localStorage, разработчик может хранить данные там.
Я могу сделать не лучше, чем указать вам соответствующую главу погружения в HTML5: http://diveintohtml5.ep.io/offline.html