2011-05-03 71 views
8

我正在使用緩存清單文件在離線的web應用程序。我無法刷新我的JavaScript文件。如果我更改.js文件(清單文件中列出),然後更改清單文件版本號。並保存它,然後更改後的.js文件不會重新加載到客戶端上。我需要做些什麼才能讓.js文件更新?緩存清單離線應用程序不刷新Chrome中的JavaScript文件

謝謝

回答

11

這是因爲網絡服務器告訴瀏覽器緩存靜態文件幾個小時。因此,瀏覽器不知道清單文件已更改。您可以清除所有的應用程序數據「或」配置Web服務器的清單是不可緩存...

閱讀http://diveintohtml5.info/offline.html更多信息

如果你想清除Chrome使用鍍鉻的應用程式快取:// appcache-internals/ 並手動搜索C:\ Documents and Settings \ YOURUSERNAME \ Local Settings \ Application Data \ Google \ Chrome \ User Data \ Default \ Cache

4

我假設你如果使用一個緩存清單,然後刷新清單,瀏覽器將再次請求所有文件。但是,我發現我需要在清單中的所有文件中顯式設置標題,以告訴瀏覽器不要緩存文件。我相信,一旦清單告訴瀏覽器再次請求文件,瀏覽器就會像其他任何非清單緩存文件一樣對待它。也許這是Chrome的錯誤,但我覺得我在另一個WebKit瀏覽器中看到了這一點。

無論如何,在清單中爲文件設置標頭永遠不會被緩存,並且在更新清單時應該重新加載它們。如果這些文件在清單頁面外使用,則可能需要根據需要實際緩存這些文件。

+0

我經歷了同樣的行爲。在我的實驗中,我注意到在這種情況下,使用Rack和WEBrick,Chrome 27正確地重新加載了html文件(不管緩存標頭),但需要禁用JavaScript文件的緩存。相反,即使使用默認緩存,Firefox 21也可以正確地重新加載JavaScript文件。對於Chrome,你可以在https://github.com/edymtt/cvsandbox/blob/master/config.ru找到一個可以工作的'config.ru' – edymtt 2013-06-17 18:22:59

1

我有同樣的問題,直到我碰到這個無價的警告是在 Mozilla Developer site

重要:不指定緩存清單 文件清單本身,否則這將是幾乎不可能通知瀏覽器一個 新的清單是可用的。

woops。我的錯。

但是,每當我更改代碼中的某些內容時,我需要更改清單中的某些內容,然後重新加載兩次,這是無關緊要的問題。

3

在地址欄中鍵入chrome://appcache-internals依次輸入

緩存清單列表會出現那麼就刪除你想要的,當你再次加載頁面一切都將被刷新。

希望這有助於:)

0

在我的情況,我必須禁止使用meta標籤傳統的瀏覽器緩存。看到this SO question如何

相關問題