HTML5 Offline Manifest Страница остановки кэширования объявлена
Я играл с файлом манифеста кэша и пытался заставить его перестать кэшировать страницу, на которой он объявлен.
Из HTML5 Скалы
любая страница, на которую пользователь переходит, включая манифест, будет неявно добавлена в кеш приложения
Ace. Я хочу, чтобы файл манифеста кэшировал определенные артефакты, одним из которых является автономная версия моего одностраничного онлайн-приложения HTML, но НЕ кэшировал онлайн-версию.
1 ответ
Вот как я решил проблему. Мой файл манифеста
CACHE MANIFEST
# Version 0.1
CACHE:
# Minimised Styles
/css/style.0.1.min.css
# Minimised JavaScript
/js/script.0.1.min.js
FALLBACK:
/ /offline.html
NETWORK:
*
Обратите внимание, что все, что идет на mydomain.com/, когда в автономном режиме теперь будет идти в /offline.html (из кэша)
Теперь, как кэшировать только то, что находится в файле манифеста, не включая онлайн-страницу на mydomain.com/.
Поместите следующий iframe внизу вашей страницы на mydomain.com/
<iframe src="/offline.html" style="display: none;"></iframe>
И положи manifest="myapp.appcache"
в offline.html.
Это означает, что при загрузке mydomain.com/ он никогда не будет кэширован (так как на странице нет атрибута manifest). Затем браузер переходит в offline.html через iframe, и все остальное, что вам нужно, добавляется кеширование с использованием инструкций в файле манифеста, включая страницу offline.html из-за наличия атрибута HTML.
Единственные накладные расходы, которые я вижу, это загрузка первой страницы, iframe сделает дополнительный HTTP-запрос, но после кэширования он возьмет его из кеша, так что это не большая проблема.