天天看點

html5的 app cache會不會有一個坑

浏覽器同時提供了appcache與browsercache,如何及時準确的将伺服器上的更新的内容同步到使用者的用戶端上将會變得非常複雜。

目前浏覽器支援的緩存主要有兩種: 一種是傳統的浏覽器cache,簡稱browser cache; 另一種是HTML5引入的離線緩存Application cache。它們之間主要有以下差別: 

    兩者的目的不一樣。App cache主要針對特有的web app,然而browser cache适應于所有的web頁面。

    Browser cache将緩存非常多的任何頁面,然而app cache将隻緩存manifest檔案中指定的頁面。

    Browser cache是不可靠的,開發者不知道哪些頁面和頁面中的資源檔案已經被緩存。App cache允許開發者對緩存有更多的控制。

    标準制定者不一樣。App cache是W3C制定的規範。浏覽器緩存的政策主要由HTTP消息中各種Cache-Control緩存指令來去頂,HTTP規範由IETF組織來制定。

需要注意: 多個頁面可以共享一個app cache。

App cache與browser cache混合在一起會使更新機制變得複雜,主要有以下幾個因素: 

1) App cache在各浏覽器平台實作上存在差異;

2) 各浏覽器又提供了不同的頁面重新整理機制;

3) app cache還與傳統的browser cache有着千絲萬縷的聯系;對于它倆如何協同工作,HTML5的相關規範沒有對app cache的細節給出非常明确的規定; 浏覽器官方文檔有沒有給出非常明确的說明。

4) browser cache的更新機制本身就已經很複雜。

繼續閱讀