2012-07-18 50 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