HTML5的離線儲存怎么使用?

大家好,我是IT修真院北京分院第22期的學員楊綱,一枚正直純潔善良的WEB前端程序員。

1.背景介紹

HTML5提供了很多新的功能以及相應的接口,離線存儲就是其中的一個,離線存儲可以將站點的一些文件存儲在本地,在沒有網絡的時候還是可以訪問到以緩存的對應的站點頁面,其中這些文件可以包括html,js,css,img等等文件,但其實即使在有網絡的時候,瀏覽器也會優先使用已離線存儲的文件,返回一個200(from cache)頭。這跟HTTP的緩存使用策略是不同的。

它是瀏覽器自己的一種機制,隨著移動互聯網時代的到來,網絡可靠性降低,如果我們已經將需要的文件緩存下下來,一旦網絡無法訪問,也能繼續訪問。

而且做好相應資源的緩存可以帶來更好的用戶體驗,當用戶使用自己的流量上網時,本地緩存不僅可以提高用戶訪問速度,而且大大節約用戶的使用流量。

2.知識剖析

什么是Manifest:

其實Manifest是一個簡單的 文本文件,它的擴展名是任意的,定義需要緩存的文件、資源,當第一次打開時,瀏覽器會自動緩存相應的資源。

Manifest 的特點:

離線瀏覽:即當網絡斷開時,可以繼續訪問你的頁面。

訪問速度快:將文件緩存到本地,不需每次都從網絡上請求。

穩定性:做了Manifest緩存,遇到突發網絡故障或者服務器故障,繼續訪問本地緩存。


3.常見問題

離線存儲有什么優缺點?

優點

離線瀏覽 - 用戶可在應用離線時使用它們

速度 - 已緩存資源加載得更快

減少服務器負載 - 瀏覽器將只從服務器下載更新過或更改過的資源。

缺點

更新的資源,需要二次刷新才會被頁面采用

不支持增量更新,只有manifest發生變化,所有資源全部重新下載一次

缺乏足夠容錯機制,當清單中任意資源文件出現加載異常,都會導致整個manifest策略運行異常

4.解決方案

5.編碼實戰

6.擴展思考

存儲網頁數據的方式?

localStorage - 沒有時間限制的數據存儲(永久),對于同一個瀏覽,當用戶關閉瀏覽器窗口后,數據不會被刪除。

sessionStorage - 針對一個 session 的數據存儲(sesion/),當用戶關閉瀏覽器窗口后,數據會被刪除。

cookie:不適合大量數據的存儲,因為它們由每個對服務器的請求來傳遞,這使得 cookie 速度很慢而且效率也不高。

7.參考文獻

參考一:慕課網-manifest

參考二:MDN-manifest

參考三:知乎-關于前端緩存優化,為什么沒人用manifest?

8.更多討論

瀏覽器對離線存儲的大小有限制嗎?

其他的離線存儲各自應該在什么情況下使用?

除了這些還有其他能實現離線存儲的方式嗎?

鳴謝

感謝大家觀看

BY

孫劍立-肖浩宇-楊剛

課后問答:

1.瀏覽器跟蹤時清除了緩存是否能取消跟蹤?
答:能,這里的緩存其實不是manifest,而是cookie,清除緩存后,cookie被清除。

2.:cookie有哪些優點?

答:他的缺點來自于他的優點,因為cookie會跟蹤瀏覽器發送http請求,所以通過它可以實現用戶身份認證等一系列功能,也是因為這樣頻繁的發送cookie,占用了帶寬。

3.manifest怎么用?

http://www.w3school.com.cn/html5/html_5_app_cache.asp

ppt鏈接:https://ptteng.github.io/PPT/PPT/css-15-Html5%20offline%20storage.html

視頻鏈接:https://pan.baidu.com/s/1kUFHKAN

密碼: va8q

今天的分享就到這里啦,歡迎大家點贊、轉發、留言、拍磚~

------------------------------------------------------------------------------------------------------------------------

技能樹.IT修真院

“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷茫”。

這里是技能樹.IT修真院,成千上萬的師兄在這里找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。快來與我一起學習吧?!

猛戳這里

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容