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

首頁 > 編程 > JavaScript > 正文

Javascript緩存API

2019-11-20 09:42:17
字體:
來源:轉載
供稿:網友

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
成人a视频在线观看| 日本精品久久久久久久| 91精品91久久久久久| 国模极品一区二区三区| 欧美插天视频在线播放| 久久精品国产96久久久香蕉| 欧美视频国产精品| 成人黄色中文字幕| 国产亚洲一级高清| 在线视频欧美日韩| 欧美精品18videos性欧| 日韩欧美国产视频| 国产精品视频自在线| 亚洲图片在区色| 91精品国产自产在线观看永久| 亚洲人午夜色婷婷| 91久久久久久久久久久久久| 永久免费看mv网站入口亚洲| 久久国产精品99国产精| 狠狠躁夜夜躁久久躁别揉| 91地址最新发布| 狠狠躁夜夜躁人人爽天天天天97| 欧美精品第一页在线播放| 草民午夜欧美限制a级福利片| 亲子乱一区二区三区电影| 中文字幕在线视频日韩| 久久av在线播放| 国产九九精品视频| 国产精品久久久久不卡| 亚洲日本成人女熟在线观看| 日韩av电影院| **欧美日韩vr在线| 午夜免费日韩视频| 国产精品啪视频| 成人av在线网址| 国产精品视频免费在线| 日韩欧中文字幕| 欧美成人一区在线| 国产欧美在线播放| 日韩激情视频在线| 不卡av电影院| 97超级碰在线看视频免费在线看| 久久久精品一区二区三区| 欧美激情aaaa| 日韩av影视综合网| 国产大片精品免费永久看nba| 91精品啪aⅴ在线观看国产| 日韩精品视频在线观看免费| 亚洲国产精品久久久久秋霞蜜臀| 久久久精品欧美| 国产精品久久久久久久久借妻| 国产不卡精品视男人的天堂| 日本精品视频在线| 国产欧美日韩视频| 91视频免费网站| 久久精品视频网站| 亚洲第一福利视频| 国产综合色香蕉精品| 91国在线精品国内播放| 日本道色综合久久影院| 日韩av中文在线| 国产精品久久久久久av下载红粉| 亚洲第一精品夜夜躁人人躁| 91免费看片网站| 精品毛片三在线观看| 久久综合五月天| 91精品国产色综合久久不卡98口| 久久全球大尺度高清视频| 国内精品国产三级国产在线专| 中文字幕国产日韩| 91chinesevideo永久地址| 91高清视频免费| 亲爱的老师9免费观看全集电视剧| 欧美国产激情18| 午夜精品久久久久久久99黑人| 欧洲精品毛片网站| 亚洲激情中文字幕| 久久久久久有精品国产| 亚洲大尺度美女在线| 国产欧美在线视频| 国产日韩精品电影| 国产精品青青在线观看爽香蕉| 欧美成年人网站| 茄子视频成人在线| 中文字幕日韩在线观看| 色综合久久中文字幕综合网小说| 成人国产在线激情| 日韩精品久久久久久久玫瑰园| 亚洲福利视频免费观看| 久久99精品国产99久久6尤物| 成人性生交大片免费看小说| 欧美日韩国产成人在线观看| 欧美中文在线观看国产| 成人av在线亚洲| 精品一区二区三区三区| 国产精品99久久99久久久二8| 国产视频丨精品|在线观看| 国产精品久久久久久久一区探花| 88xx成人精品| 欧美日韩高清在线观看| 亚洲欧美在线免费| 亚洲伊人久久综合| 国产色综合天天综合网| 久久精品国产96久久久香蕉| 国产精品入口免费视| 国产日韩换脸av一区在线观看| 欧美日韩福利电影| 国产成人精品av在线| 亚洲bt天天射| 一本一道久久a久久精品逆3p| 国产精品视频免费在线| 成人一区二区电影| 亚洲欧洲中文天堂| 亚洲人成电影网站色| 国产精品丝袜一区二区三区| 一区二区三区久久精品| 欧美激情奇米色| 国产在线精品自拍| 精品国产一区二区三区久久久狼| 精品国内自产拍在线观看| 中文字幕精品—区二区| 欧美三级免费观看| 国产精品一区二区三区成人| 国产精品91久久久久久| 国产精品一区二区女厕厕| 久久精品国产久精国产思思| 国产日韩精品在线| 国产精品视频不卡| 欧美精品久久久久久久免费观看| 日韩av免费网站| 国产精品成人一区二区三区吃奶| 亚洲欧美日韩国产中文专区| 亚洲第一区中文99精品| 欧美精品一二区| 亚洲久久久久久久久久| 日韩av手机在线观看| 亚洲自拍偷拍视频| 精品欧美aⅴ在线网站| 亚洲国产另类久久精品| 视频直播国产精品| 国产日韩欧美在线播放| 91在线|亚洲| 亚州成人av在线| 国产亚洲激情在线| 久久久久成人精品| 国产精品综合不卡av| 国产日本欧美一区二区三区| 日本高清视频精品| 亚洲成人激情图| 久久久久久久久久久网站| 91久久精品美女| 久久国产加勒比精品无码| 国产精品流白浆视频| 九九热精品视频在线播放| 亚洲人成网站777色婷婷| 欧美午夜精品伦理| 国产福利精品av综合导导航| 久久网福利资源网站| 26uuu另类亚洲欧美日本老年| 亚洲欧美国产一区二区三区| 久久久在线免费观看| 久久久免费观看视频| 欧美理论在线观看| 亚洲成av人影院在线观看|