HTML5 Оффлайн Manifest Stop Кэширование Страница объявляется

Я играю с файлом манифеста кэша и пытаюсь заставить его остановить кеширование страницы, на которой она была объявлена.

От камни 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/ он никогда не будет кэшироваться (поскольку на странице нет атрибута манифеста). Затем браузер переходит в offline.html через iframe, и все, что вы хотите, кэширование добавляется с помощью инструкций в файле манифеста, включая страницу offline.html, из-за наличия атрибута HTML.

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