2013-10-17 80 views
0

瀏覽器在加載網站時緩存緩存清單文件中列出的所有頁面,還是必須訪問每個頁面才能緩存(以後可以脫機訪問)嗎?緩存清單是否自動緩存所有頁面

我讀它,這篇文章MDN文章,這是我拿走了

"any page the user navigates to that include a manifest will be implicitly added to the application cache" 

來看從上面看來,你必須訪問的每個頁面爲它的緩存。但我不確定這是否是他們想傳達的內容。

有誰知道或有這方面的經驗?

回答

0

簡而言之:緩存清單中列出的所有頁面都在加載網站時被緩存。


爲了說清楚,讓我們來分析一下你提到的句子。它說:

任何頁面的用戶導航到包含清單將被默認添加到應用程序緩存

首先,「包括清單頁面」是與HTML標記清單屬性的每一頁:

<html manifest="example.appcache"> 
    ... 
</html> 

這樣的頁面中將「隱含添加到應用程序緩存」。該關鍵字是「隱含的」。這意味着,即使該頁面沒有在清單文件中列出,該頁面也會被添加到應用程序緩存

加載頁面後,緩存此頁面上引用的清單文件中的所有頁面/資源(不需要訪問它們)。

此外,沒有在清單中列出但包括清單屬性的每個頁面都被緩存,但僅當您訪問該頁面時纔會發生這種情況

如果我的解釋不清楚,我可以提供一個簡短的例子。

0

應用程序緩存包含緩存清單中指定的所有資源。這就是整個問題。用戶不需要「訪問」它們。 (正常訪問通常會將它們添加到瀏覽器緩存中,但這是一個完全不同的問題。)而應用程序緩存則適用於應用程序,而不是網站。當且僅當緩存清單已更改時才重新加載應用程序緩存。這對於網站來說是荒謬的,但它對於應用程序來說很有意義。

您引用的沒有引用的MDN頁面似乎只是說,當具有應用程序緩存清單的頁面被訪問時,頁面本身會被添加到應用程序緩存中,即使它未在maniest。