成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

JavaScript中的緩存API

開(kāi)發(fā) 前端
了解如何使用JavaScript中的Cache API緩存資源。Cache API允許服務(wù)工作者對(duì)要緩存的資源(HTML頁(yè)面、CSS、JavaScript文件、圖片、JSON等)進(jìn)行控制。

 了解如何使用JavaScript中的Cache API緩存資源。

[[335466]]

Cache API允許服務(wù)工作者對(duì)要緩存的資源(HTML頁(yè)面、CSS、JavaScript文件、圖片、JSON等)進(jìn)行控制。通過(guò)Cache API,服務(wù)工作者可以緩存資源以供脫機(jī)使用,并在以后檢索它們。

檢測(cè)Cache支持

檢查 caches 對(duì)象在 window 中是否可用。

 

  1. let isCacheSupported = 'caches' in window; 

caches 是 CacheStorage 的一個(gè)實(shí)例。

創(chuàng)建/初始化Cache

我們可以使用 open 方法創(chuàng)建一個(gè)具有 name 的緩存,這將返回 promise。如果緩存已經(jīng)存在,則不會(huì)創(chuàng)建新的緩存。

 

  1. caches.open('cacheName').then( cache => { 
  2. }); 
  • 你不能訪問(wèn)為其他源(域)設(shè)置的緩存。
  • 你正在創(chuàng)建的緩存將為你的域創(chuàng)建。
  • 你可以為同一個(gè)域添加多個(gè)緩存,可以通過(guò) caches.keys() 訪問(wèn)。

將項(xiàng)目添加到緩存

可以使用三種方法 add,addAll,set 來(lái)緩存資源。add() 和 addAll() 方法自動(dòng)獲取資源并對(duì)其進(jìn)行緩存,而在 set 方法中,我們將獲取數(shù)據(jù)并設(shè)置緩存。

add

 

  1. let cacheName = 'userSettings'
  2. let url = '/api/get/usersettings'
  3. caches.open(cacheName).then( cache => { 
  4.    cache.add(url).then( () => { 
  5.        console.log("Data cached "
  6.     }); 
  7. }); 

在上面的代碼中,內(nèi)部對(duì) /api/get/usersettings url的請(qǐng)求已發(fā)送到服務(wù)器,一旦接收到數(shù)據(jù),響應(yīng)將被緩存。

addAll

addAll 接受URL數(shù)組,并在緩存所有資源時(shí)返回Promise。

 

  1. let urls = ['/get/userSettings?userId=1''/get/userDetails']; 
  2. caches.open(cacheName).then( cache => { 
  3. cache.addAll(urls).then( () => { 
  4.        console.log("Data cached "
  5.     }); 
  6. }); 

Cache.add/Cache.addAll 不緩存 Response.status 值不在200范圍內(nèi)的響應(yīng),Cache.put 可以讓你存儲(chǔ)任何請(qǐng)求/響應(yīng)對(duì)。

put

put 為當(dāng)前的 Cache 對(duì)象添加一個(gè)key/value對(duì),在 put 中,我們需要手動(dòng)獲取請(qǐng)求并設(shè)置值。

注意:put() 將覆蓋先前存儲(chǔ)在高速緩存中與請(qǐng)求匹配的任何鍵/值對(duì)。

 

  1. let cacheName = 'userSettings'
  2. let url = '/api/get/userSettings'
  3. fetch(url).then(res => { 
  4.   return caches.open(cacheName).then(cache => { 
  5.     return cache.put(url, res); 
  6.   }) 
  7. }) 

從緩存中檢索

使用 cache.match() 可以得到存儲(chǔ)到URL的 Response。

 

  1. const cacheName = 'userSettings' 
  2. const url = '/api/get/userSettings' 
  3. caches.open(cacheName).then(cache => { 
  4.   cache.match(url).then(settings => { 
  5.     console.log(settings); 
  6.   } 
  7. }); 

settings 是一個(gè)響應(yīng)對(duì)象,它看起來(lái)像

 

  1. Response { 
  2.   body: (...), 
  3.   bodyUsed: false
  4.   headers: Headers, 
  5.   ok: true
  6.   status: 200, 
  7.   statusText: "OK"
  8.   type: "basic"
  9.   url: "https://test.com/api/get/userSettings" 

檢索緩存中的所有項(xiàng)目

cache 對(duì)象包含 keys 方法,這些方法將擁有當(dāng)前緩存對(duì)象的所有url。

 

  1. caches.open(cacheName).then( (cache) => { 
  2.   cache.keys().then((arrayOfRequest) => { 
  3.       console.log(arrayOfRequest); // [Request,  Request] 
  4.   }); 
  5. }); 

arrayOfRequest是一個(gè)Request對(duì)象數(shù)組,其中包含有關(guān)請(qǐng)求的所有詳細(xì)信息。

檢索所有緩存

 

  1. caches.keys().then(keys => { 
  2.   // keys是一個(gè)數(shù)組,其中包含鍵的列表 
  3. }) 

從緩存中刪除項(xiàng)目

可以對(duì) cache 對(duì)象使用 delete 方法來(lái)刪除特定的緩存請(qǐng)求。

 

  1. let cacheName = userSettings; 
  2. let urlToDelete = '/api/get/userSettings'
  3. caches.open(cacheName).then(cache => { 
  4.   cache.delete(urlToDelete) 
  5. }) 

完全刪除緩存

 

  1. caches.delete(cacheName).then(() => { 
  2.    console.log('Cache successfully deleted!'); 
  3. }) 

 

 

責(zé)任編輯:華軒 來(lái)源: 前端全棧開(kāi)發(fā)者
相關(guān)推薦

2020-06-18 09:16:20

JavaScript緩存API

2017-06-19 14:21:01

JavaScriptAPI設(shè)計(jì)原則

2020-11-09 11:10:56

前端api緩存

2010-09-08 17:26:46

JavaScript

2016-03-29 09:59:11

JavaScriptAPI設(shè)計(jì)

2023-04-17 16:21:20

JavaScriot前端開(kāi)發(fā)

2010-09-28 15:27:09

JavaScript

2019-07-02 15:21:39

緩存NET單線程

2020-12-02 08:28:58

JavaScript API 服務(wù)器

2021-03-29 11:51:07

緩存儲(chǔ)存數(shù)據(jù)

2011-06-22 09:45:46

JavaScriptAPI

2015-10-30 15:18:24

2014-01-03 09:13:39

JavaScriptthis

2013-05-08 10:36:07

JavaScriptJS詳解JavaScrip

2025-06-11 08:10:00

JavaScripAPI代碼

2025-03-31 08:00:00

JavaScriptAPI開(kāi)發(fā)

2009-06-22 15:34:00

Javascript

2020-07-01 08:37:31

JavaScript開(kāi)發(fā)技術(shù)

2023-10-11 13:46:26

緩存Web應(yīng)用程序

2017-03-20 14:45:42

JavaScript詳解
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 亚洲自拍偷拍视频 | 国产999精品久久久 日本视频一区二区三区 | 精品一区二区三区日本 | 自拍偷拍视频网 | 国产美女黄色 | 九九九视频在线观看 | 天堂一区 | 可以在线观看av的网站 | 欧美精品一区二区三区在线播放 | 亚洲国产精品一区二区www | 久久久久久久综合色一本 | 欧美在线观看一区 | 一级毛片在线播放 | 一区二区精品 | 亚洲欧美日韩精品久久亚洲区 | www成人免费视频 | 成人欧美一区二区三区在线播放 | 欧美福利精品 | 美美女高清毛片视频免费观看 | 在线观看日本网站 | 成人三级电影 | 免费国产视频 | 国产精品欧美一区二区三区不卡 | 国产精品区一区二 | 国内自拍偷拍 | 99久久久无码国产精品 | 91国内精品久久 | 亚洲激情视频在线 | 人人看人人草 | 小川阿佐美pgd-606在线 | 国产成人一区二区三区 | 懂色中文一区二区三区在线视频 | 国产高清一区二区三区 | 亚洲精品视频导航 | 成年人国产在线观看 | 午夜久久久久 | 精品视频一区二区三区在线观看 | 日韩精彩视频 | 在线视频一区二区 | 国产美女久久 | 91精品一区二区 |