【发布时间】:2012-09-20 00:58:44
【问题描述】:
我有一个带有注释的缓存清单
# Version 3.2
为了更新所有应用程序,我只需更改版本号。它有效,但是:
当我更新清单时,所有内容都会正确更新(新缓存已填满),但实际文件会从(旧)缓存中多花一次时间。当我重新加载两次时,一切都会更新。这种行为正确吗?使用 chrome 21。
谢谢
【问题讨论】:
标签: html cache-manifest offlineapps
我有一个带有注释的缓存清单
# Version 3.2
为了更新所有应用程序,我只需更改版本号。它有效,但是:
当我更新清单时,所有内容都会正确更新(新缓存已填满),但实际文件会从(旧)缓存中多花一次时间。当我重新加载两次时,一切都会更新。这种行为正确吗?使用 chrome 21。
谢谢
【问题讨论】:
标签: html cache-manifest offlineapps
是的,这是当前的“正确”行为。这就是发生的事情:
当您刚刚更改清单文件并刷新浏览器时,会发生这种情况(假设您在线)
这是目前的标准行为。有些人放置了一些事件处理程序来提示用户进行另一次刷新(在第一次刷新之后)
就个人而言,我认为浏览器应该负责提醒用户在完成下载新文件后再次刷新,但是现在,大多数人都会从“window.applicationCache”中放入事件处理程序来触发事件以帮助管理这个。
要查看使用 window.applicationCache 的示例,请转到此处:http://www.html5rocks.com/en/tutorials/appcache/beginner/
它位于“更新缓存”部分。
【讨论】:
如here 所述,可以立即交换缓存:
function updateSite(event) {
window.applicationCache.swapCache();
}
window.applicationCache.addEventListener('updateready', updateSite, false);
【讨论】: