所以我得到了我的IP侦听的文件服务器。
我创建了一个test.html,test.js和一个subtest.appcache。我的AppCache说:
CACHE MANIFEST
CACHE:
test.html
test.js
NETWORK :
*
同时,我的test.html:
<html manifest="manifest.appcache">
如果我在test.html上访问,则一切都在起作用,但是,如果我想更改html文件中的某些内容并重新加载页面,则没有更改(旧的HTML文件被缓存)。
。如果我在AppCache文件上更改某些内容,例如,只需编辑变量后面的空间并重新加载我的页面,它就会接受HTML文件中的所有更改,并且不再忽略更改。
为什么?每次重新加载页面时,我如何才能收听我的HTML文件?
这就是缓存的工作方式。如果您想刷新缓存,则您已经说过需要更改清单文件。
您必须修改清单文件本身以告知浏览器以刷新缓存的文件。
但是您可以使用JS检查缓存是否更改。
您可以得到这样的缓存对象:window.applicationCache
window.addEventListener('load', function(e) {
// Add an event listener to the cache
window.applicationCache
.addEventListener('updateready', function(e) {
// Check if ready to update (The update ready status is 4)
if (
window.applicationCache.status ==
window.applicationCache.UPDATEREADY) {
// Get new app chache
// window.location.reload();
window.applicationCache.swapCache()
}
}, false);
}, false);
在此处检查官方文档:https://html.spec.whatwg.org/#applicationcache
请注意,此功能已弃用,您不应该使用
来自MDN:
此功能已从Web标准中删除。尽管有些浏览器仍可能支持它,但它正在被删除。避免使用它,并在可能的情况下更新现有代码;请参阅此页面底部的兼容性表以指导您的决定。请注意,此功能可能随时停止工作。
我该怎么办?
您应该使用新的服务工作者API,它是应用程序缓存的直接替换。服务工作人员拥有应用程序缓存的所有功能。
用于服务工作者API检查以下:
- mdn
- Google Dev
- W3C(github)