2012-07-18 51 views
1

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

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

    }); 
    } 
} 

回答

3

使用AppCache时有很多问题。

我建议的第一件事就是将swapCache方法添加到上面的代码中。例如。

$(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问题的答案。

如果这些没有帮助,也许张贴一些代码,我们可以解决。

+0

感谢您的回复bxjx。但听起来像你的子弹#3呼声不一致。如何获取我的清单中列出的所有资源,并在更改时重新加载。 – lorraine 2012-07-19 02:25:43

+0

我已经更新了文字,希望能够更好地解释它! – bxjx 2012-07-19 05:34:08

+2

你是怎么过的?如果你仍然有问题,也许发布一些代码,我们可以看看:) – bxjx 2012-07-23 05:05:04