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

时间:2012-08-24 07:47:00

标签: html5 manifest offline cache-manifest html5-appcache

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

来自HTML5 Rocks

  

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

王牌。我希望清单文件缓存特定的工件,其中一个是我的在线单页应用HTML的离线版本,但不是缓存在线版本。

1 个答案:

答案 0 :(得分: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:
*

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

现在,如何只清除清单文件中的内容,而不在 mydomain.com / 中包含在线页面。

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

<iframe src="/offline.html" style="display: none;"></iframe>

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

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

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