老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

Javascript如何獲取緩存和清除緩存API

這篇文章給大家分享的是有關Javascript如何獲取緩存和清除緩存API的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創新互聯公司長期為1000+客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為武陟企業提供專業的做網站、成都網站制作武陟網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發。

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使用這種緩存技術來提高運行速度。

感謝各位的閱讀!關于“Javascript如何獲取緩存和清除緩存API”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


新聞名稱:Javascript如何獲取緩存和清除緩存API
地址分享:http://www.xueling.net.cn/article/piijii.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 九九热线视频只有这里最精品 | 97爱视频 | 国产妇女馒头高清泬20P多 | 亚洲卡一卡二卡三乱草莓 | 狠狠躁夜夜躁人人爽天天2020 | 黄色一级免费观看 | 久久国产精品久久w女人spa | 国产精品一级大片 | 伊人成人在线视频 | J97久久国产亚洲精品超碰热 | 日日摸处处碰夜夜爽 | 欧美日韩黄色大片 | 黑人巨茎精品欧美一区二区 | a片人禽杂交zozo | 色一情一乱一伦一区二区三区日本 | 影音先锋男人在线资源资源网 | 91中文字幕在线视频 | 4438xx亚洲最大五色丁香 | 国产精品久国产精品 | 国产强被迫伦姧在线观看无码 | 无码性按摩AV在线观看 | 免费看的一级毛片 | 日本特大黄色片 | 国内精品第一页 | 欧美成人福利视频 | 日韩a级毛片免费观看 | 女人18毛片A级毛片嫰阝 | 国产成人精品亚洲 | 欧美成人性色 | 人善交oooooo另类毛片 | 日本精品中文字幕在线不卡 | 狠狠色噜噜狠狠狠狠色综合久AV | 超碰国产欧美人人 | 区二区三区玖玖玖 | 国产精品一区二区 | 日韩亚洲中字无码一区二区三区 | 东京热AV人妻无码A片 | 亚洲第九十七页 | v888aⅴ视频在线播放 | 久久99精品国产麻豆宅宅 | 被男人嗦过奶头一下就变大了 |