我的小型 HTML5 应用程序需要在服务器上重新部署。我知道我只需触摸 .appcache 文件即可让每个浏览器在下次访问时更新到文件的最新版本。
清单如下所示:
CACHE MANIFEST
#Version: 201209251353
index.html
apple-touch-icon.png
css/styles.css
data/dump.bin
img/background.png
img/sprites.png
js/core.js
js/jquery-1.8.1.min.js
vid/walkthrough.mov
为了“触摸”,我添加了一条评论 (#Version:),我的意思是在内容更改时随时更新。
奇怪的是,一些文件被更新了。并非全部,例如,一位同事获得了最新的 core.js,但仍显示旧的 walkthrough.mov。
是否有一种简单的机制来强制更新缓存中的所有文件?
我在 SO 上找到了以下代码并将其包含在脚本中,希望它有所帮助。不知道它有多需要:(
// Application cache refresh
window.addEventListener('load', function(e) {
window.applicationCache.addEventListener('updateready', function(e) {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
// Browser downloaded a new app cache.
// Swap it in and reload the page to get the new hotness.
window.applicationCache.swapCache();
if (confirm('A new version of this site is available. Load it?')) {
window.location.reload();
}
} else {
// Manifest didn't changed. Nothing new to server.
}
}, false);
}, false);