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

JavaScript中的緩存API

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

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

[[335466]]

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

檢測Cache支持

檢查 caches 對象在 window 中是否可用。

 

  1. let isCacheSupported = 'caches' in window; 

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

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

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

 

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

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

可以使用三種方法 add,addAll,set 來緩存資源。add() 和 addAll() 方法自動獲取資源并對其進(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)部對 /api/get/usersettings url的請求已發(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 可以讓你存儲任何請求/響應(yīng)對。

put

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

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

 

  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() 可以得到存儲到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)對象,它看起來像

 

  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 對象包含 keys 方法,這些方法將擁有當(dāng)前緩存對象的所有url。

 

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

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

檢索所有緩存

 

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

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

可以對 cache 對象使用 delete 方法來刪除特定的緩存請求。

 

  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é)任編輯:華軒 來源: 前端全棧開發(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ì)

2010-09-28 15:27:09

JavaScript

2023-04-17 16:21:20

JavaScriot前端開發(fā)

2019-07-02 15:21:39

緩存NET單線程

2021-03-29 11:51:07

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

2020-12-02 08:28:58

JavaScript API 服務(wù)器

2015-10-30 15:18:24

2011-06-22 09:45:46

JavaScriptAPI

2014-01-03 09:13:39

JavaScriptthis

2013-05-08 10:36:07

JavaScriptJS詳解JavaScrip

2025-06-11 08:10:00

JavaScripAPI代碼

2020-07-01 08:37:31

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

2025-03-31 08:00:00

JavaScriptAPI開發(fā)

2009-06-22 15:34:00

Javascript

2017-03-20 14:45:42

JavaScript詳解

2017-05-23 15:47:04

JavaScriptthis解析
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 91麻豆产精品久久久久久 | 精品国产乱码一区二区三区a | www狠狠爱com | 黄色大片网站 | 超碰在线国产 | 一区二区在线不卡 | 人人爽人人爽 | 秋霞电影院午夜伦 | 91在线中文字幕 | 亚洲黄色网址视频 | 国产亚洲精品美女久久久久久久久久 | 国产精品久久久久久久久久 | 精品日韩一区二区三区av动图 | 日韩在线一区二区 | 亚洲一区二区在线视频 | 国产一区二区三区久久久久久久久 | 视频一区中文字幕 | 青青草一区二区三区 | 国产精品久久久久久高潮 | 久久国产美女视频 | 日韩精品在线一区 | 成人免费在线播放 | 精品91 | 国产精品一区二区三 | av黄色在线| 日韩在线不卡 | 一区二区三区国产精品 | 久久成人精品 | 久久成人18免费网站 | 色在线视频网站 | 欧美日韩在线成人 | 午夜视频一区二区三区 | 亚洲视频在线看 | 伊人无码高清 | av在线成人 | 久久久久国产精品人 | 国产综合欧美 | 国产99精品 | 2023亚洲天堂 | 精品一区二区三区在线观看 | 精品福利在线视频 |