更新時間:2022-07-28 來源:黑馬程序員 瀏覽量:
過去很長一段時間里,瀏覽器端的應(yīng)用程序無法完全與APP相媲美,一個重要的原因在于,如果斷了網(wǎng),瀏覽器端的程序就無法運行,所有的工作都必須停止,而HTML5的離線應(yīng)用功能,改變了這一現(xiàn)狀。
HTML5使用Application Cache接口提供應(yīng)用程序緩存技術(shù),這意味著Web應(yīng)用可進行緩存,并在沒有網(wǎng)絡(luò)的情況下輕松地創(chuàng)建離線應(yīng)用。Application Cache是從瀏覽器的緩存中分出來的一塊緩存區(qū),要想在這塊緩存中保存數(shù)據(jù),可以使用一個描述文件列出要下載和緩存的資源,并且通過該緩存的狀態(tài)手動更新資源文件的緩存。離線緩存功能的使用有一個前提,就是需要訪問的Web頁面至少被在線訪問過一次。
使用Application Cache緩存接口的優(yōu)勢如下:
(1)實現(xiàn)離線瀏覽:用戶可在離線時瀏覽完整的網(wǎng)站。
(2)更快的加載速度:緩存資源為本地資源,因此加載速度較快。
(3)服務(wù)器負載更少:瀏覽器只會從發(fā)生了更改的服務(wù)器下載資源。
那么,離線應(yīng)用的存儲方式和之前講解的Web Storage有什么區(qū)別?localStorage支持String類型的數(shù)據(jù)的持久化,是否也可以做離線緩存?
Web Storage主要用于瀏覽器緩存,而Application Cache用于存儲靜態(tài)資源,其中l(wèi)ocalStorage在某個場景下可用于離線存儲,例如,向客戶端保存用戶名和密碼,但是相比Application Cache而言有局限性。對于離線應(yīng)用,需要緩存的不僅是字符串,還有一些應(yīng)用程序、圖片、CSS文件等,實現(xiàn)這些功能,使用Application Cache更合適。
另外,離線存儲與瀏覽器緩存的區(qū)別在于:離線存儲為Web提供服務(wù),而瀏覽器緩存只緩存單個頁面;離線存儲可以指定需要緩存的文件,瀏覽器緩存無法指定。