Javascript 更新HTML5离线应用程序缓存的正确方法
我在我的网站中使用离线缓存,并设置了以下事件处理程序来处理更新Javascript 更新HTML5离线应用程序缓存的正确方法,javascript,html,html5-appcache,Javascript,Html,Html5 Appcache,我在我的网站中使用离线缓存,并设置了以下事件处理程序来处理更新 applicationCache.addEventListener('updateready', function () { if (window.applicationCache.status == window.applicationCache.UPDATEREADY) { window.applicationCache.swapCache(
applicationCache.addEventListener('updateready', function () {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
window.applicationCache.swapCache();
window.applicationCache.update();
window.location.reload();
}
});
它可以工作,但对我来说似乎是多余的。我是否需要调用swapCache()和update()函数,或者一个简单的window.location.reload()就足够了,因为浏览器将在刷新时使用新文件?实际上,根据MSDN文档,您应该同时使用这两个函数 从文件中: 要将旧缓存换成新缓存,请先调用update。 当状态处于UPDATEREADY状态时,将调用swapCache 交换 调用swapCache不会更新页面上的任何内容。会的 只需允许您的网页能够访问任何进一步的动态 来自新缓存而不是旧缓存的内容。在页面被删除之后 刷新后,新创建的缓存将用于页内和 动态请求 提供swapCache方法是为了方便,但不是必需的 用于基本功能。加载或刷新页面就足够了。 例如,在UpdateReady事件之后刷新页面将 从新缓存重新加载页面,而无需调用swapCache swapCache不会导致重新加载以前加载的资源; 例如,图像不会突然被重新加载,样式表和 脚本不会被重新解析或重新计算。唯一的变化是 对缓存资源的后续请求将获得较新的副本