2011-10-15 50 views
1

我有一個Web應用程序使用應用程序緩存離線和在線訪問。我遇到的問題是,當我更改清單文件時,有些用戶沒有看到更新。它適用於我和其他人,所以我唯一的理論是有些ISP緩存清單文件。Web應用程序緩存更新

有沒有其他人遇到過這個?

我不知道有什麼辦法以編程方式刷新瀏覽器應用程序緩存來強制更新。 window.applicationCache.update()似乎沒有辦法(至少在iPad上)。將查詢添加到URL的常用技巧可能會破壞脫機行爲。

無奈之下,我可以簡單地使用一個不變的加載頁面,並把所有的代碼放在localStorage中,並做我自己的更新。

+0

您使用清單文件發送了哪些過期標題? – robertc

+0

無。你如何設置它們? – srkleiman

+0

謝謝!會 ExpiresByType文本/緩存清單「訪問加30分鐘」 做的伎倆?那麼html,js和圖像呢?這會影響離線行爲嗎? – srkleiman

回答

0

通常的做法是立即過期清單文件,as per HTML5 Boilerplate

ExpiresByType text/cache-manifest  "access plus 0 seconds" 

火狐特別是已知有問題與緩存清單文件如果沒有明確到期。與上面鏈接的HTML5 Boilerplate文件對於其他文件類型也有一些合理的默認值。

+0

因爲我正在使用應用程序緩存,並且我目前沒有版本控制,所以我想確保爲所有其他文件類型(js,css,png)關閉所有中間緩存以獲得一致的圖像。如果離線,其他類型的0到期時間是否也會影響應用程序緩存?我需要版本控制嗎? – srkleiman

+0

@SteveKleiman我不確定'版本控制'是什麼意思? – robertc

+0

對於每個js,css或image組件的每個版本,我沒有單獨的URL或查詢字符串。 – srkleiman