Мне странно отправлять ответ на вопрос, который вы задали, комментировали и ответили сами, но я думаю, что почти двух лет вашей абсолютной монополии в этой теме достаточно. ;)
Основные различия между манифестом кэша 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 ).
Вот несколько ресурсов, с которых вы можете начать:
См. Также мои последние ответы на эти связанные вопросы: