HTML5 mannifest 文件
Web應(yīng)用程序的本地緩存,是通過每個頁面的manifest文件來管理的。manifest文件是一個簡單文本文件,它以清單的形式列舉了需要被緩存或不需要被緩存的資源文件的文件名稱,以及這些資源文件的訪問路徑??梢詾槊恳粋€頁面單獨指定一個mainifest文件,也可以為整個Web應(yīng)用程序指定一個總的manifest文件,manifest文件示例如下:
CACHE MANIFEST
#文件的開頭必須書CACHE MANIFEST
#該manifest文件的版本號
#version 7
CACHE:
other.html
hello.js
images/myphoto.jpg
NETWORK:
http://google.com/xxx
Not0ffline.jsp
*
FALLBACK:
online.js locale.js
CACHE:
newhello.html
newhello.js
在manifest文件中,第一行必須是CACHE MANIFEST文字,以把本文件的作用告知瀏覽器,即對本地緩存中的資源文件進(jìn)行具體設(shè)置。同時,真正運行或測試離線Web應(yīng)用程序的時候,需要對服務(wù)器進(jìn)行配置,讓服務(wù)器支持text/cache-manifest這個MIME類型(在HTML5中規(guī)定manifest文件的 MIME 類型為text/cache-manifest)。
在manifest文件中,可以加上注釋來進(jìn)行一些必要的說明或解釋,注釋行以“#”開始。文件中可以且最好加上版本號,以表示該manifest文件的版本。版本號可以是任何形式的,更新文件時一般也會對該版本號進(jìn)行更新。
指定資源文件時,文件路徑可以是拒對路徑,也可以是絕對路徑,每個資源文件為一行。在指定資源文件的時候,可以把資源文件分為三類,分別是CACHE、NETWORK和FALLBACK:
? CACHE類別中指定需要被緩存在本地的資源文件。為某個頁面指定需要本地緩存的資源文件時,不需要把這個頁面本身指定在CACHE類型中。因為如果一個頁面具有manifest文件,瀏覽器會自動對這個頁面進(jìn)行本地緩存。
? NETWORK類別為顯式指定不進(jìn)行本地緩存的資源文件,這些資源文件只有當(dāng)客戶端與服務(wù)器端建立連接的時候才能訪問。該示例中的“*”為通配符,表示沒有在本manifest文件中指定的資源文件都不進(jìn)行本地緩存。
? FALLBACK類別中指定兩個資源文件,第一個資源文件是能夠在線訪問時使用的資源文件,第二個資源文件是不能在線訪問時使用的備用資源文件。
每個類別都是可選的。但是如果文件開頭沒有指定類別,而直接書寫資源文件,此時瀏覽器把這些資源文件視為CACHE類別,直到看見文件中第一個被書寫出來的類別為止,并且允許在同一個manifest文件中重復(fù)書寫同一類別。
為了讓瀏覽器能夠正常閱讀該文本文件,需要在Web應(yīng)用程序頁面上的HTML元素的manifest屬性中指定manifest文件的URL地址,指定方法如下:
<!-- 可以為每個頁面單獨指定一個manifest文件 -->
<html manifest="hello.manifest">
</html>
<!-- 也可以為整個Web應(yīng)用程序指定一個總的manifest文件 -->
<html manifest="global.manifest">
</html>
至此,將資源文件保存到本地緩存區(qū)的基本操作就完成了。在對本地緩存區(qū)的內(nèi)容進(jìn)行修改時,只要修改manifest文件就可以了。當(dāng)文件被修改后,瀏覽器可以自動檢查manifest文件,并自動更新本地緩存區(qū)中的內(nèi)容。
點擊加載更多評論>>