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