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-запрос, но после кэширования он возьмет его из кеша, так что это не большая проблема.

Другие вопросы по тегам