HTML 5 Кэш-Манифест Vs. Etags, Expires или заголовок контроля кэша - PullRequest
19 голосов
/ 18 октября 2010

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

Ответы [ 2 ]

22 голосов
/ 29 октября 2012

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

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

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

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

Информацию о поддержке см. В таблице совместимости для поддержки автономных веб-приложений в настольных и мобильных браузерах . Неудивительно, что IE имеет некоторые проблемы, как всегда, в настоящее время Opera Mini не поддерживает его, поэтому я хотел бы предложить, что если вы используете манифесты кэша, то также используют традиционные заголовки HTTP (оба HTTP / 1.1 Cache-Control и срок действия HTTP / 1.0 истекает - см. 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]

где [CURRENT TIME] - текущее время по Гринвичу в правильном формате (см. RFC 2616 с. 3.3 ).

Вот несколько ресурсов, с которых вы можете начать:

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

0 голосов
/ 28 декабря 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...