1.起源:
? ? ? ? ? ? ? H5之前,所有網(wǎng)頁都必須聯(lián)網(wǎng)才能訪問
? ? ? ? ? ? ? PC端沒問題驹马,在移動端網(wǎng)絡(luò)的可靠性變低革砸。(過山洞、走地下通道糯累、去郊區(qū)算利、連不上網(wǎng),什么都干不了)
2.manifest是什么泳姐?
manifest是一個同名后綴為manifest的文件效拭,在文件中定義那些需要緩存的文件,支持manifest的瀏覽器仗岸,將會按照manifest文件的規(guī)則進行保存數(shù)據(jù)允耿,從而在沒有網(wǎng)絡(luò)的情況下借笙,也可以訪問
當(dāng)?shù)谝淮握_配置app cache后扒怖,再次訪問該應(yīng)用時,瀏覽器?會首先檢查manifest是否有變動业稼,如果有變動盗痒,則把相應(yīng)的變化更更新下來,同時改變?yōu)g覽器?的app cache,如果沒有變動俯邓,就會直接把app cache的資源返回
3.特點:
離線瀏覽 ?—— ?用戶可以在離線狀態(tài)瀏覽?網(wǎng)站舊數(shù)據(jù)
更快的速度 ?—— ?因為數(shù)據(jù)存儲在本地骡楼,所以速度會更快
減輕服務(wù)器的負(fù)載 ?—— ?瀏覽器只會下載在服務(wù)器上發(fā)生改變的資源
4.兼容情況:
所有主流瀏覽器都支持離線緩存,除了了個性的IE
5.使用
a.在html標(biāo)簽中增加一個manifest屬性稽鞭,用來指定當(dāng)前頁面的manifest文件
b.創(chuàng)建一個和html同名的manifest文件鸟整,然后給index.html文件添加屬性 ? ? ? ? <html manifest="index.manifest">
c.html文件設(shè)置完成,后面去操作manifest文件
6.manifest文件的編寫
7.如何更新緩存
a.更新manifest文件
? ? ? ? 給manifest添加或刪除文件朦蕴,都可以更新緩存
? ? ? ? 如果我們更改了了js篮条,而沒有新增或刪除,
? ? ? ? 前面例子中的版本號吩抓,可以很好的用來更新manifest文件
b.通過javascript操作
? ? ? ? HTML5中引入JS操作離線緩存的方法
? ? ? ? window.applicationCache.update();
? ? ? ?瀏覽器已放棄支持該方法
c.清除瀏覽?緩存
? ? ? ? 如果用戶清除了瀏覽?緩存涉茧,會重新下載文件
8.使用注意事項
(1)瀏覽器對緩存數(shù)據(jù)的容量量限制可能不太一樣,某些瀏覽?限制是每個站點5MB
(2)如果manifest文件疹娶,或者內(nèi)部列列舉的某一個文件不能正常下載伴栓,
整個更更新過程將失敗,繼續(xù)使用老的緩存
(3)引用manifest的html必須與manifest文件同源雨饺,在同一個域下
(4)FALLBACK中的資源必須和manifest文件同源
(5)當(dāng)一個資源被緩存后钳垮,該瀏覽?直接請求整個絕對路徑也會訪問緩存中的資源
(6)站點的其它頁面即時沒有manifest屬性,請求的資源如果在緩存中也從緩存中訪問
(7)當(dāng)manifest文件發(fā)生改變的時额港,資源請求本身也會觸發(fā)更更新