Что нового в автономном веб-приложении HTML 5, которое еще не было доступно во всех браузерах?

Что нового в функции «автономных веб-приложений» HTML 5, которая еще не была доступна во всех браузерах?

Кэширование в автономном режиме — это работа браузера. Как это стало работой HTML?

Веб-кэш — это механизм временного хранения (кеширования) веб-документов, таких как HTML-страницы и изображения, для уменьшения использования полосы пропускания, нагрузки на сервер и предполагаемой задержки. Веб-кеш хранит копии документов, проходящих через него; последующие запросы могут быть удовлетворены из кэша, если выполняются определенные условия.

Как написано в статье Википедии для веб-кеша.

И это написано для автономного веб-кэша на веб-сайте W3C:

Чтобы пользователи могли продолжать взаимодействовать с веб-приложениями и документами, даже когда их сетевое подключение недоступно, например, из-за того, что они путешествуют за пределами зоны покрытия своего интернет-провайдера, авторы могут предоставить манифест, в котором перечислены файлы, необходимые для работы в Интернете. приложение для работы в автономном режиме и заставляет браузер пользователя сохранять копию файлов для использования в автономном режиме.

Что HTML 5 делает лучше и чем отличается кэширование?

Похож ли он на автономный режим в Internet Explorer 5? И можем ли мы кэшировать данные за пределами установленного в браузере объема памяти?

Пожалуйста, приведите пример, чтобы я мог понять разницу между автономным кешем HTML 5 и кешем браузера.


person Jitendra Vyas    schedule 16.06.2011    source источник


Ответы (2)


Кэширование веб-браузера — это когда браузеры решают хранить файлы локально для повышения производительности. HTTP позволяет веб-серверам предлагать браузерам, как долго хранить файлы, и позволяет браузерам спрашивать сервер, изменился ли файл (чтобы они могли избежать его повторной загрузки).

Однако он не предназначен для надежного хранения ресурсов, необходимых автономному приложению. В конечном счете, от браузера зависит, кэширует ли он файлы и как долго. И браузеры часто перестают использовать свою кешированную версию, если не могут связаться с сервером, чтобы проверить ее актуальность.

Спецификация автономных веб-приложений HTML5 предоставляет веб-авторам возможность сообщать браузерам, что хранить для автономного доступа, и требует от браузеров поддерживать эти файлы в актуальном состоянии, когда они находятся в сети. Он также предоставляет свойство DOM, которое сообщает разработчику, находится ли браузер в сети или в автономном режиме, а также события, которые запускаются при изменении статуса в сети.

Как описывает Петер в своем ответе, это позволяет разработчикам веб-приложений хранить введенные пользователем данные, когда пользователь находится в автономном режиме, а затем синхронизировать их с сервером, когда они снова подключаются к сети. Разработчик должен сделать это хранение и синхронизацию вручную, так как браузер предоставляет только события, указывающие на онлайн-статус, но если браузер также поддерживает localStorage, разработчик может хранить данные там.

Я не могу сделать ничего лучше, чем указать вам на соответствующую главу «Погружение в HTML5»: http://diveintohtml5.ep.io/offline.html

person Paul D. Waite    schedule 16.06.2011
comment
Предположим, у меня есть регистрационная форма на веб-странице, и пользователь заполняет ее, когда Интернет недоступен. тогда данные отправятся? будет ли он получать сообщение о том, что вы зарегистрированы, даже если интернет отключен, и когда интернет будет доступен, все будет синхронизировано. - person Jitendra Vyas; 16.06.2011
comment
@Jitendra: если ты так напишешь, то да. Это не произойдет автоматически, но вы можете написать код JavaScript, который проверяет, находится ли пользователь в сети при отправке, и, если это не так, сохраняет его данные локально, а затем отправляет их на сервер, когда они возвращаются в сеть. - person Paul D. Waite; 16.06.2011
comment
Итак, если пользователь очистит кеш перед повторным подключением к Интернету, данные, введенные пользователем, исчезнут во всех случаях, верно? Знаете ли вы какой-нибудь живой пример, чтобы увидеть эффект автономного кеша html 5? Я буду включать и выключать свой интернет, чтобы увидеть изменения и синхронизацию. - person Jitendra Vyas; 16.06.2011
comment
@Jitendra: зависит от того, где вы храните данные: вы несете ответственность за это с помощью JavaScript. Я думаю, ваши варианты — это в основном файлы cookie и localStorage, поэтому, если пользователь очистит любой из них, да, данные исчезнут. Я полагаю, что у Financial Times есть веб-приложение, использующее автономные возможности HTML5: см., возможно, ft.com/cms/ - person Paul D. Waite; 16.06.2011
comment
@Jitendra: какой метод автономного хранения использовать для вводимых пользователем данных, сегодня возник вопрос по этому вопросу: stackoverflow.com/questions /6374266 - person Paul D. Waite; 16.06.2011

Теперь вы можете кэшировать динамические данные, а не только js/css/html файлы/изображения.

Допустим, у вас в браузере открыто приложение со списком дел. Вы подключены к Интернету и добавляете кучу вещей, которые вам нужно сделать.

Бум, ты в самолете без связи. У вас есть 6 часов свободного времени, поэтому вы решаете поработать. Вы завершаете все дела в своем списке дел (список все еще был открыт в вашем браузере). Вы выбираете все элементы и меняете их состояние на «завершено».

Ваш самолет приземляется, вы открываете ноутбук и обновляете страницу. Все изменения, которые вы сделали без подключения, теперь синхронизируются с сервером, так как теперь у вас есть подключение к Интернету.

person Peeter    schedule 16.06.2011
comment
Так что это полезно для веб-приложений, а не для веб-сайтов. - person Jitendra Vyas; 16.06.2011
comment
@Jitendra: зависит от ваших определений. Если веб-сайт хочет, чтобы пользователям было проще читать его содержимое в автономном режиме, тогда может помочь появление файла манифеста. (Вспомните, например, iPhone. Он будет довольно агрессивно удалять страницы и файлы из своего кеша, потому что он ограничен в ресурсах. Файл манифеста предотвратит это, если он поддерживается на iOS.) - person Paul D. Waite; 16.06.2011
comment
@Jitendra Vyas: я не вижу в этой функции ничего полезного для статического веб-сайта. - person Peeter; 16.06.2011