AppCache:资源不会重新加载

时间:2012-07-18 07:48:59

标签: html5 application-cache

当我更新我的清单并加载页面时,我在Developer工具上检查了我已更改的脚本。它不在那里。我总是需要清除浏览器缓存以便加载它。我有一个更新缓存的监听器:

$(function() {    
    if (window.applicationCache) {
    applicationCache.addEventListener('updateready', function() {        
        console.log("appcache updated");
            window.location.reload();

    });
    }
}

1 个答案:

答案 0 :(得分:3)

使用AppCache时有很多问题。

我建议的第一件事是将swapCache方法添加到上面的代码中。 E.g。

   $(function() {    
     if (window.applicationCache) {
       applicationCache.addEventListener('updateready', function() {        
         if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
           window.applicationCache.swapCache();
           console.log("appcache updated");
           window.location.reload();
         }
       });
     }
   }

以下是其他一些需要注意的事项:

  • 确保在更改代码时更新清单文件(听起来就是这样做)
  • 将javascript处理程序添加到所有applicationEvents以帮助调试。有些代码,请查看此http://www.html5rocks.com/en/tutorials/appcache/beginner/的底部。事实上,阅读整个页面并确保你得到它。密切注意任何错误。
  • 请注意,即使您的清单发生更改,也不意味着浏览器会自动获取最新版本的文件。它会尝试请求,但仍然可以从普通缓存中检索它们。通过设置缓存标头可以避免这种情况。见HTML5 Offline Appcache Updates Not Showing In Firefox

在stackoverflow上的其他地方也有很多创建AppCache问题的答案。

如果这些没有帮助,可能会发布一些代码,我们可以解决它。