HTML5脱机清单停止缓存页面它被声明

Gre*_*reg 14 html5 offline manifest cache-manifest html5-appcache

我一直在玩缓存清单文件并尝试让它停止缓存它声明的页面.

来自HTML5 Rocks

用户导航到的包含清单的任何页面都将隐式添加到应用程序缓存中

高手.我希望清单文件缓存特定的工件,其中一个是我的在线单页应用程序HTML的离线版本,但不是缓存在线版本.

Gre*_*reg 17

这就是我解决问题的方法.我的清单文件

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:
*
Run Code Online (Sandbox Code Playgroud)

请注意,当离线时,mydomain.com/上的所有内容现在都会转到/offline.html(来自缓存)

现在,如何仅缓存清单文件中的内容,而不包括mydomain.com/上的在线页面.

将以下iframe放在页面底部mydomain.com/

<iframe src="/offline.html" style="display: none;"></iframe>
Run Code Online (Sandbox Code Playgroud)

并放入manifest="myapp.appcache"offline.html.

这意味着当加载mydomain.com/时,它不会被缓存(因为页面上没有manifest属性).然后浏览器通过iframe获取offline.html,并且使用清单文件中的说明添加您想要缓存的所有其他内容,包括offline.html页面,因为HTML属性的存在.

我能看到的唯一开销是在第一页加载时,iframe会发出额外的HTTP请求,但是一旦缓存它就会从缓存中获取,所以不是一个大问题.