亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解Javascript獲取緩存和清除緩存API

2019-11-19 16:29:13
字體:
來源:轉載
供稿:網友

JavaScript ServiceWorker API的好處就是讓web開發人員輕松的控制緩存。雖然使用ETags等技術也是一種控制緩存的技術,按使用JavaScript讓程序來控制緩存功能更強大,更自由。當然,強大有強大的好處,也有弊處――你需要做善后處理,所謂的善后處理,就是要清理緩存。

下面我們來看看如何創建緩存對象、在緩存里添加請求緩存數據,從緩存里刪除請求緩存的數據,最后是如何完全的刪除緩存。

判斷瀏覽器對緩存對象cache API的支持

檢查瀏覽器是否支持Cache API…

if('caches' in window) { // Has support!}

…檢查window里是否存在caches對象。

創建一個緩存對象

創建一個緩存對象的方法是使用caches.open(),并傳入緩存的名稱:

caches.open('test-cache').then(function(cache) { // 緩存創建完成,現在就可以訪問了});

這個caches.open方法返回一個Promise,其中的cache對象新創建出來,如果是以前創建過,就不重新創建。

添加緩存數據

對于這類的緩存,你可以把它想象成一個Request對象數組,Request請求獲取的響應數據將會按鍵值存儲在緩存對象里。有兩個方法可以往緩存里添加數據:add 和 addAll。用這兩個方法將要緩存的請求的地址添加進去。關于Request對象的介紹你可以參考fetch API這篇文章。

使用addAll方法可以批量添加緩存請求:

caches.open('test-cache').then(function(cache) {  cache.addAll(['/', '/images/logo.png'])  .then(function() {    // Cached!  });});

這個addAll方法可以接受一個地址數組作為參數,這些請求地址的響應數據將會被緩存在cache對象里。addAll返回的是一個Promise。添加單個地址使用add方法:

caches.open('test-cache').then(function(cache) { cache.add('/page/1'); // "/page/1" 地址將會被請求,響應數據會緩存起來。});add()方法還可以接受一個自定義的Request:caches.open('test-cache').then(function(cache) { cache.add(new Request('/page/1', { /* 請求參數 */ }));});//跟add()方法很相似,put()方法也可以添加請求地址,同時添加它的響應數據:fetch('/page/1').then(function(response) { return caches.open('test-cache').then(function(cache) {  return cache.put('/page/1', response); });});

訪問緩存數據

要查看已經換的請求數據,我們可以使用緩存對象里的keys()方法來獲取所有緩存Request對象,以數組形式:

caches.open('test-cache').then(function(cache) {  cache.keys().then(function(cachedRequests) {   console.log(cachedRequests); // [Request, Request] });});/*Request { bodyUsed: false credentials: "omit" headers: Headers integrity: "" method: "GET" mode: "no-cors" redirect: "follow" referrer: "" url: "http://www.webhek.com/images/logo.png"}*/

如果你想查看緩存的Request請求的響應內容,可以使用cache.match()或cache.matchAll()方法:

caches.open('test-cache').then(function(cache) { cache.match('/page/1').then(function(matchedResponse) {  console.log(matchedResponse); });});/*Response { body: (...), bodyUsed: false, headers: Headers, ok: true, status: 200, statusText: "OK", type: "basic", url: "https://www.webhek.com/page/1"}*/

關于Response對象的用法和詳細信息,你可以參考fetch API這篇文章。

刪除緩存里的數據

從緩存里刪除數據,我們可以使用cache對象里的delete()方法:

caches.open('test-cache').then(function(cache) { cache.delete('/page/1');});

這樣,緩存里將不再有/page/1請求數據。

獲取現有的緩存里的緩存名稱

想要獲取緩存里已經存在的緩存數據的名稱,我們需要使用caches.keys()方法:

caches.keys().then(function(cacheKeys) {  console.log(cacheKeys); // ex: ["test-cache"]});

window.caches.keys()返回的也是一個Promise。

刪除一個緩存對象

想要刪除一個緩存對象,你只需要緩存的鍵名即可:

caches.delete('test-cache').then(function() {  console.log('Cache successfully deleted!'); });

大量刪除舊緩存數據的方法:

// 假設`CACHE_NAME`是新的緩存的名稱// 現在清除舊的緩存var CACHE_NAME = 'version-8';// ...caches.keys().then(function(cacheNames) { return Promise.all(  cacheNames.map(function(cacheName) {   if(cacheName != CACHE_NAME) {    return caches.delete(cacheName);   }  }) );});

想成為一個service worker專家?上面的這些代碼值得放到你的儲備庫里。火狐瀏覽器和谷歌瀏覽器都支持service worker,相信很快就會有更多的網站、app使用這種緩存技術來提高運行速度。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区精品久久久| 美女啪啪无遮挡免费久久网站| 久久精品99无色码中文字幕| 国产日韩欧美在线视频观看| 欧美精品在线第一页| 欧美国产日韩一区二区| 91成品人片a无限观看| 91精品中文在线| 日韩亚洲国产中文字幕| 日本精品一区二区三区在线| 国产激情久久久久| 成人精品一区二区三区电影免费| 久久99国产精品久久久久久久久| 亚洲福利在线视频| 国产91在线高潮白浆在线观看| 在线观看精品自拍私拍| 久久精品国产一区二区三区| 欧美日韩国产一区二区| 91精品美女在线| 亚洲欧美自拍一区| 久久免费视频在线| 国产综合久久久久| 欧美视频专区一二在线观看| 成人精品一区二区三区电影免费| 九九九久久国产免费| 成人网在线免费看| 亚洲黄色av网站| 欧美高清videos高潮hd| 欧美三级欧美成人高清www| 久久青草福利网站| 91久久精品美女| 精品美女久久久久久免费| 国产日韩一区在线| 成人在线激情视频| 欧美视频裸体精品| 性欧美xxxx视频在线观看| 欧美国产视频日韩| 一区二区在线视频播放| 欧美区在线播放| 亚洲天堂影视av| 欧美激情一区二区三区成人| 精品成人国产在线观看男人呻吟| 欧美激情日韩图片| 日韩av在线一区二区| 伊人男人综合视频网| 久久久久成人精品| 久久久免费观看| 亚洲第一福利网| 久久露脸国产精品| 国内外成人免费激情在线视频网站| 久久国产精品久久久久| 久久久久久尹人网香蕉| 亚洲iv一区二区三区| 国产99视频精品免视看7| 欧美一区在线直播| 欧美最猛性xxxxx免费| 欧美日产国产成人免费图片| 欧美另类极品videosbest最新版本| 亚洲欧美精品suv| 国产精品视频久久久| 久久影视三级福利片| 亚洲男人天堂手机在线| 欧美日韩国产麻豆| 亚洲日本中文字幕免费在线不卡| 欧美综合一区第一页| 日本精品一区二区三区在线播放视频| 原创国产精品91| 国产精品色悠悠| 日本久久久久久| 国产精品美女久久久免费| 大桥未久av一区二区三区| 日韩三级影视基地| 国产一区二区三区久久精品| 2019精品视频| 91久久久久久久久久久久久| 国产精品久久久久久av福利软件| 亚洲一二在线观看| 狠狠爱在线视频一区| 国产成人精品一区| 尤物精品国产第一福利三区| 在线观看欧美www| 亚洲精品一区二区三区婷婷月| 麻豆精品精华液| 538国产精品一区二区免费视频| 久久久久久久久久久免费精品| 神马久久久久久| 午夜免费日韩视频| 欧美大片免费观看| 国产成人精品在线视频| 久久男人av资源网站| 亚洲色图50p| 国a精品视频大全| 国产日韩精品在线播放| 91精品视频在线免费观看| 欧美日韩在线观看视频小说| 7m精品福利视频导航| 青草青草久热精品视频在线网站| 北条麻妃99精品青青久久| 美女啪啪无遮挡免费久久网站| 久99九色视频在线观看| 久久精品国产免费观看| 欧美性xxxxx极品| 日日骚av一区| 青青草国产精品一区二区| 久热精品视频在线观看一区| 92福利视频午夜1000合集在线观看| 国产精品一区二区久久精品| 人人爽久久涩噜噜噜网站| 国产精品人人做人人爽| 久久久久久18| 亚洲精品久久久久中文字幕二区| 国产成人精品在线视频| 亚洲精品久久久久中文字幕欢迎你| 少妇高潮久久久久久潘金莲| 欧美老女人bb| 成人免费激情视频| 亚洲性无码av在线| 精品国内产的精品视频在线观看| 亚洲欧洲在线播放| 欧美日韩美女在线观看| 亚洲91精品在线| 欧美日韩综合视频网址| 国产精品一区二区久久| 久久久久久久香蕉网| 91麻豆国产精品| 日韩性生活视频| 成人春色激情网| 国产97在线亚洲| 日韩欧美大尺度| 亚洲美女喷白浆| 福利视频一区二区| 国产免费成人av| 夜夜躁日日躁狠狠久久88av| 久久大大胆人体| 亚洲欧美日韩综合| 日韩精品在线观看视频| 欧美黄色小视频| 久久久久久久久电影| 亚洲电影成人av99爱色| 欧美午夜丰满在线18影院| 欧美极品美女视频网站在线观看免费| 久久久久999| 免费不卡在线观看av| 久久久久久有精品国产| 国产精品日韩电影| 亚洲国产精彩中文乱码av在线播放| 亚洲美女自拍视频| 久久亚洲春色中文字幕| 亚洲欧美日韩在线一区| 国产亚洲日本欧美韩国| 97国产一区二区精品久久呦| 久久亚洲精品一区| 日韩av观看网址| 欧美大片欧美激情性色a∨久久| 国产成人精品日本亚洲| 亚洲精品自拍偷拍| 奇米影视亚洲狠狠色| 亚洲春色另类小说| 久青草国产97香蕉在线视频| 欧美日韩裸体免费视频| 久久国产精品免费视频| xxxxxxxxx欧美| 日韩高清av在线| 一区二区亚洲欧洲国产日韩|