Подтвердить что ты не робот

HTML 5 Cache Manifest Vs. Заголовок Etags, Expires или кеш-контроль

Может кто-нибудь объяснить мне, как манифест кэша HTML 5 отличается от использования других методов заголовков файлов, чтобы сообщить браузеру о кешировании файла?

4b9b3361

Ответ 1

Я чувствую себя странно, отправляя ответ на вопрос, который вы задали, прокомментировал и ответил сам, но я думаю, что почти двух лет вашей абсолютной монополии в этой теме достаточно.;)

Основные отличия между манифестами кэша HTML5 и традиционными заголовками HTTP:

  • для манифеста кэша вам нужна поддержка в браузере
  • для заголовков HTTP вам также нужна поддержка в браузере, но она более универсальная
  • у вас больше контроля над кешированием с манифестом кэша
  • ваш веб-сайт или веб-приложение могут работать в автономном режиме без соединения вообще
  • у вас может быть две версии каждого ресурса - для автономного и онлайн-использования.

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

Для поддержки см. Таблица совместимости для поддержки автономных веб-приложений в настольных и мобильных браузерах. Неудивительно, что у IE есть некоторые проблемы, как всегда, в настоящее время Opera Mini не поддерживает его, поэтому я бы предположил, что если вы используете манифесты кэша, то также можете использовать традиционные HTTP-заголовки (как HTTP/1.1 Cache-Control, так и HTTP/1.0 Expires - см. RFC 2616 с. 14.9.3).

У вас больше контроля над процессом кэширования в вашем JavaScript, например. вы можете использовать метод window.applicationCache.swapCache(), чтобы принудительно обновить кешированную версию вашего сайта без необходимости ручной перезагрузки страницы. На HTML5 Rocks приведены ссылки на полезные примеры кода (ссылки ниже), объясняющие, как обновлять пользователей до последней версии вашего веб-сайта или веб-приложения.

Имейте в виду, что вам нужно обслуживать манифест кэша с помощью правильных заголовков HTTP, в частности Content-Type и заголовков, связанных с кешированием, чтобы ваш браузер знал, что это манифест кэша, и что он всегда должен быть проверен для новых версий. Это, например, то, как Github обслуживает манифесты кэша для страниц GitHub:

Content-Type: text/cache-manifest
Cache-Control: max-age=0
Expires: [CURRENT TIME]

где [ТЕКУЩЕЕ ВРЕМЯ] - текущее GMT-время в правильном формате (см. RFC 2616 сек., 3,3).

Вот некоторые ресурсы, которые помогут вам начать:

См. также мои последние ответы на эти связанные вопросы:

Ответ 2

Я считаю, что основное различие между обычным дисковым кэшем и новым автономным кешем html5 заключается в том, что при работе в автономном режиме (или без подключения к Интернету) традиционный дисковый кеш не будет использоваться или доступен для рендеринга страницы, тогда как автономный кеш будет.