2011-06-27 20 views
0

我有一個多頁面網站。我想使用HTML5清單使這兩個頁面可以脫機。但是,我希望在可能的情況下使用在線對應部分,而不是本地緩存版本。目前,即使網絡可用,也正在加載緩存版本。如果你想某些網頁總是從服務器加載如何在使用HTML5清單時使用網絡版本

<META HTTP-EQUIV="Pragma" CONTENT="no-cache"> 
+0

這個問題似乎相關:http://stackoverflow.com/questions/1715568/how-to-properly-invalidate-an-html5-cache-manifest-for-online-offline-web-apps。但是,我不想在每次更改時都使其失效。 –

回答

0

我找到的解決方案是爲了確保我在清單中緩存的頁面不包含任何動態生成的內容。在線時,我的JavaScript代碼執行Ajax請求以獲取動態生成的內容。 JavaScript檢測瀏覽器何時處於脫機狀態,並拒絕執行Ajax請求,實質上轉入僅脫機模式。

0

添加這頭?

如果出現這種情況,您需要確保您的網站的離線緩存識別出這些元素已更改,從而更新它們。我想唯一的辦法是強制刷新,確保在服務器上更新相關元素時,離線緩存清單文件也是如此。 (您當然可以在緩存清單中使用NETWORK指令強制用戶代理始終訪問服務器以查找某些資源,但正如您所暗示的那樣,離線時您將不會使用這些頁面) 。

所以你不一定無效緩存文件,但你確實需要確保它觸發更新和緩存交換。

+0

它仍在從清單加載文檔。請注意,我指的是HTML5清單;不僅僅是瀏覽器緩存。 –

+0

你能顯示清單嗎? – jcvandan

+0

這是一個有效的清單,CACHE MANIFEST位於頂部,CACHE部分,以及我的兩個頁面的列表以及它們使用的圖像,CSS和JavaScript。沒什麼特別的 –

0

時上線,其含義是,他們在某些方面更先進的日期:

+0

當通過網絡提供服務時,頁面將包含動態內容。從緩存清單提供服務時,這不會是真實的。所以,當瀏覽器連接時,它應該總是從我的網絡服務器獲取版本,因爲這將包含動態內容。 –

相關問題