我一直在使用缓存清单文件,并试图让它停止缓存它被声明的页面.
any page the user navigates to that include a manifest will be implicitly added to the application cache
高手.我想要清单文件缓存特定的工件,其中之一是我的在线单页应用程序HTML的脱机版本,但不缓存在线版本.
解决方法
这是我如何解决问题.我的清单文件
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 src="/offline.html" style="display: none;"></iframe>
并将offline =“myapp.appcache”放在offline.html中.
这意味着当mydomain.com/加载时,它将不会被缓存(因为页面上没有清单属性).然后,浏览器将通过iframe获取offline.html,并且您需要使用清单文件中的说明(包括offline.html页面)添加了您希望缓存的所有其他内容,因为存在HTML属性.
我可以看到的唯一的开销是在第一页加载,iframe会产生一个额外的HTTP请求,但一旦缓存,它将从缓存中获取,所以不是一个巨大的问题.