自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

前端面試:HTML5 的離線儲(chǔ)存的使用和原理?

開發(fā) 前端
HTML5 的離線存儲(chǔ)是基于一個(gè)新建的 Appcache 文件的緩存機(jī)制(不是存儲(chǔ)技術(shù)),通過這個(gè)文件上的解析清單離線存儲(chǔ)資源,這些資源就會(huì)像 cookie 一樣被存儲(chǔ)了下來。

相似存儲(chǔ)

localStorage 長期存儲(chǔ)數(shù)據(jù),瀏覽器關(guān)閉后數(shù)據(jù)不丟失; sessionStorage 數(shù)據(jù)在瀏覽器關(guān)閉后自動(dòng)刪除。

離線的存儲(chǔ):

service-worker 的標(biāo)準(zhǔn)。

在用戶沒有與因特網(wǎng)連接時(shí),可以正常訪問站點(diǎn)或應(yīng)用,在用戶與因特網(wǎng)連接時(shí),更新用戶機(jī)器上的緩存文件。

原理:

HTML5 的離線存儲(chǔ)是基于一個(gè)新建的 appcache 文件的緩存機(jī)制(不是存儲(chǔ)技術(shù)),通過這個(gè)文件上的解析清單離線存儲(chǔ)資源,這些資源就會(huì)像 cookie 一樣被存儲(chǔ)了下來。

之后當(dāng)網(wǎng)絡(luò)在處于離線狀態(tài)下時(shí),瀏覽器會(huì)通過被離線存儲(chǔ)的數(shù)據(jù)進(jìn)行頁面展示。如何使用。

1、頁面頭部像下面一樣加入一個(gè) manifest 的屬性。

2、在 cache.manifest 文件的編寫離線存儲(chǔ)的資源。

CACHE MANIFEST #v0.11
CACHE:
js/app.js css/style.css NETWORK:
resourse/logo.png FALLBACK:
/ /offline.html
  • CACHE: 表示需要離線存儲(chǔ)的資源列表,由于包含 manifest 文件的頁面將被自動(dòng)離線存儲(chǔ),所以不需要把頁面自身也列出來。
  • NETWORK: 表示在它下面列出來的資源只有在在線的情況下才能訪問,他們不會(huì)被離線存儲(chǔ),所以在離線情況下無法使用這些資源。不過,如果在 CACHE 和 NETWORK 中有一個(gè)相同的資源,那么這個(gè)資源還是會(huì)被離線存儲(chǔ),也就是說 CACHE 的優(yōu)先級更高。
  • FALLBACK: 表示如果訪問第一個(gè)資源失敗,那么就使用第二個(gè)資源來替換他,比如上面這個(gè)文件表示的就是如果訪問根目錄下任何一個(gè)資源失敗了,那么就去訪問 offline.html 。

3、在離線狀態(tài)時(shí),操作 window.applicationCache 進(jìn)行需求實(shí)現(xiàn)。

service-worker

如何更新緩存:

(1)更新 manifest 文件。

(2)通過 javascript 操作。

(3)清除瀏覽器緩存。

注意事項(xiàng):

(1)瀏覽器對緩存數(shù)據(jù)的容量限制可能不太一樣(某些瀏覽器設(shè)置的限制是每個(gè)站點(diǎn) 5MB)。

(2)如果 manifest 文件,或者內(nèi)部列舉的某一個(gè)文件不能正常下載,整個(gè)更新過程都將失敗,瀏覽器繼續(xù)全部使用老的緩存。

(3)引用 manifest 的 html 必須與 manifest 文件同源,在同一個(gè)域下。

(4)FALLBACK 中的資源必須和 manifest 文件同源。

(5)當(dāng)一個(gè)資源被緩存后,該瀏覽器直接請求這個(gè)絕對路徑也會(huì)訪問緩存中的資源。

(6)站點(diǎn)中的其他頁面即使沒有設(shè)置 manifest 屬性,請求的資源如果在緩存中也從緩存中訪問。

(7)當(dāng) manifest 文件發(fā)生改變時(shí),資源請求本身也會(huì)觸發(fā)更新。

責(zé)任編輯:姜華 來源: 今日頭條
相關(guān)推薦

2023-06-26 08:24:23

JavaScriptAJAX

2012-12-03 13:53:38

IBMdW

2018-07-31 11:20:26

2018-05-30 08:54:00

離線存儲(chǔ)HTML5

2009-05-08 13:46:38

JavaScriptHTML5離線存儲(chǔ)

2014-07-22 10:58:33

HTML5jQuery

2023-06-29 07:48:35

異步加載JavaScript

2023-06-02 08:49:25

優(yōu)雅降級CSS3

2017-08-16 10:03:57

前端面試題算法

2020-06-29 15:20:31

前端React Hooks面試題

2010-07-28 08:41:17

HTML5Web移動(dòng)應(yīng)

2013-01-24 10:26:04

HTML5HTML 5HTML5的未來

2014-03-20 10:50:44

HTML5 定位技術(shù)

2017-09-27 15:17:54

HTML5Hybrid手勢

2011-05-13 17:36:05

HTML

2011-12-15 01:01:16

ibmdw

2013-01-18 10:59:44

IBMdW

2017-10-20 12:18:02

HTML5代碼header

2013-01-30 15:35:47

AdobeHTML5

2023-03-16 09:00:00

HTML5HTML語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)