移動web app開發-----application cache 離線緩存應用篇
在移動web app應用中,請求數非常昂貴,請求數過多不但耗電,耗流量,同時速度也非常的慢,為了減少請求,加快資源的加載速度,使用application cache,是一個比較不錯的方案,下麵通過三篇文章來全麵的介紹application cache,第一篇為應用篇,第二篇為原理篇,第三篇為高級進階篇。本篇內容主要包括三個方麵
- manifest文件書寫
- application cache類型
- application cache狀態
manifest文件書寫
要想使用application cache,首先必須為html標簽添加manifest屬性,該屬性的值【example.appcache】是一個位於服務器端的文件,一般可以把這個文件叫做manifest文件。
<html manifest="example.appcache"></html>
example.appcache文件路徑可以是絕對路徑和相對路徑,絕對路徑必須和網站同域,它的MIME類型必須為text/cache-manifest,文件的格式為utf-8,文件的基本內容,如下所示:
CACHE MANIFEST # v1 2011-08-14 # This is another comment index.html cache.html style.css image1.png # Use from network if available NETWORK: network.html # Fallback content FALLBACK: / fallback.html上麵的內容有幾個需要主要的地方:
1.第一行必須包含CACHE
MANIFEST,這兩個單詞之間是一個U+0020這樣的空格,後麵可以有0個或者多個空格,其餘的文本字符都會被忽略
2.文件中可以包含空行,注釋,片段頭和片段數據,這些都是可選的
空行:可以包含0個或者多個空白或者tab字符。
注釋:以#開頭
片段頭:CACHE【要緩存的資源】;NETWORK【必選請求網絡的資源】,FALLBACK【當資源請求失敗時,需要轉向的url】
片段數據:在CACHE片段中,每一行必須為一個合法的URI或者IRI
reference to a resource to cache,每一行的開始或者結束可以有空 格;NETWORK片段中,每一行必須為一個合法的URI或者IRI
reference to a resource tofetch from the network,可以使用【*】通配符;在FALLBACK片段中,每一行必須為一個合法的URI 或者IRI
reference to a resource,當網絡不可用時,需要跳轉的資源。文件中的相對地址是相對example.appcache的地址, 而不是相對於當前文檔的地址。
3.第二行是一個注釋,表示是一個版本號,一般會使用一個時間戳,這個版本號不是必須的,但是一般情況下就需要,至於為什麼下篇文章會說明。
application cache類型:
Master entries【表示含有manifest屬性的文檔】
Explicit entries【位於CACHE片段中列舉的資源】
Network entries【位於NETWORK片段列舉的資源】
Fallback entries【位於FALLBACK中列舉的資源】
注意必須至少包含下麵一種類型,同一個資源可以被標記為多種類型
application cache狀態:
UNCACHED
表示app cache未被初始化
IDLE
app cache沒有在當前更新的進程中。
CHECKING
表示manifest文件正在被獲取和檢查更新狀態。
DOWNLOADING
資源已經被下載,並添加到緩存中,這時還沒有更新緩存。
UPDATEREADY
表示一個新版本的app cache可用了,同時會觸發一個update ready事件。
OBSOLETE
所有緩存的資源都已經過時
到此為止application cache的應用相信大家肯定是沒有問題的了,那麼緩存是如何更新的,我們如何能夠知道緩存的狀態,帶著這些問題,敬請關注下篇文章【application cache 離線緩存原理篇】
感謝:
最後更新:2017-04-02 17:09:25