文章主要介紹了H5離線儲存Manifest原理及使用,文中透過示例程式碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
理解:
離線儲存可以將站點的檔案儲存在本地,在沒有網路的情況下還是可以訪問到儲存的對應的站點的頁面,這些檔案可以包括html,js,css,img等等檔案。但其實即使在有網路的時候,瀏覽器也會優先使用已離線儲存的檔案。
什麼是Manifest:
Manifest是一個簡單的 文字檔案,它的副檔名是任意的,定義需要快取的檔案、資源,當第一次開啟時,瀏覽器會自動快取相應的資源。
Manifest 的特點:
- 離線瀏覽:即當網路斷開時,可以繼續訪問你的頁面。
- 訪問速度快:將檔案快取到本地,不需每次都從網路上請求。
- 穩定性:做了Manifest快取,遇到突發網路故障或者伺服器故障,繼續訪問本地快取。
Manifest的使用:
建立一個和html同名的manifest檔案,比如頁面為index.html,那麼可以建一個index.manifest的檔案,然後給index.html的html標籤新增如下屬性即可:
<html lang="en" manifest="index.manifest"> 或<html manifest="http://www.example.com/index.manifest">
manifest 的引入可以使絕對路徑也可以是相對路徑,如果你使用的是絕對路徑,你的manifest檔案必須和你的站點掛在同一個域名下。
manifest檔案你可以儲存為任意的副檔名,但mine-type 必須是 text/cache-manifest。
<
html
lang
=
"en"
manifest
=
"index.manifest"
> 或 <
html
lang
=
"en"
manifest
=
"index.cache"
>
在伺服器上部署時需要在伺服器上新增相應的mie-type。
manifest 標籤應該包含到你需要快取資源的頁面,當第一次開啟該頁面時,瀏覽器會解析該頁面中的mainfest,並快取裡面列舉的資源,同時該頁面也會自動會被瀏覽器快取,即使該頁面沒有在Manifest中列出。
Manifest檔案結構:
manifest檔案,基本格式為三段: CACHE, NETWORK,與 FALLBACK,其中NETWORK和FALLBACK為可選項。
而第一行CACHE MANIFEST為固定格式,必須寫在前面。
以#號開頭的是註釋,可以是版本號,時間戳等等。一般會在這寫個版本號,用來在快取的檔案更新時,更改manifest的作用:瀏覽器已經快取下來的快取,只有當manifest檔案發生了改變才會更新本地快取,即使你的程式碼發生了
更新,本地瀏覽器也是不知道的,所以每次釋出程式碼時你可以更改下#後面的資訊比如版本號或者時間,告訴瀏覽器相應的更新本地快取。
CACHE MANIFEST
#v0.1
CACHE:
js/index.js
css/index.css
NETWORK:
images/logo.png
FALLBACK:
*.html /404.html /* / /404.html 或 /html/ /404.html 也可*/
1、第一行是CACHE MANIFEST 這是必須需要的。
2、CACHE(必須) 標識出哪些檔案需要快取,可以是相對路徑也可以是絕對路徑。這裡列舉出來的檔案,當第一次載入下來時,會被瀏覽器快取在本地。
3、NETWORk 這一部分是要繞過快取直接讀取的檔案,可以使用萬用字元 ,大多數網站使用 * 。 當使用 時 表示出 CACHE指定檔案外,其它所有頁面都需要聯網訪問。
4、FALLBACK (可選) 當資源無法訪問時,瀏覽器使用後備資源去替代。第二個表示後備頁面。兩個 URI 都必須使用相對路徑並且與清單檔案同源。可以使用萬用字元。
下面的例子中,如果無法建立因特網連線,則用 “404.html” 替代 /html5/ 目錄中的所有檔案。
FALLBACK:
/html5/ /404.html
下面的例子中,當任何頁面無法訪問時跳轉到 “404.html”頁。
FALLBACK:
*.html /404.html
注意: 1 必須在第一行 2、3、4 直接的順序是隨意的,並且在同一個manifest檔案中可以出現多次,多次和一次效果一樣。
新增 manifest 屬性的頁面會自動被瀏覽器快取,不需要再CACHE節點中再次新增。
如何更新快取
- 更新manifest檔案
- 透過javascript操作
- 清除瀏覽器快取
給manifest新增或刪除檔案,都可更新快取,如果我們更改了js,而沒有新增或刪除,前面例子中註釋中的版本號,可以很好的用來更新manifest檔案。
html5中引入了js操作離線快取的方法,下面的js可以手動更新本地快取。
window.applicationCache.update();
如果使用者清除了瀏覽器快取(手動或用其他一些工具)都會重新下載檔案。
我們可以使用程式碼手動更新manifest快取,一旦webapp原始碼更新,會自動更新本地manifest快取,使使用者始終訪問到最新的原始碼。
到此這篇關於H5離線儲存Manifest原理及使用的文章就介紹到這了,更多相關H5離線儲存Manifest內容請搜尋以前的文章或繼續瀏覽下面的相關文章,