CacheStorage: keys() 方法
注意:此功能在 Web Workers 中可用。
CacheStorage 介面的 keys() 方法返回一個 Promise,該 Promise 會解析為一個字串陣列,這些字串對應於由 CacheStorage 物件跟蹤的所有命名 Cache 物件,並且順序與建立它們的順序相同。使用此方法可以遍歷所有 Cache 物件列表。
您可以透過視窗中的 Window.caches 屬性或在 worker 中的 WorkerGlobalScope.caches 屬性來訪問 CacheStorage。
語法
js
keys()
引數
無。
返回值
一個 Promise,它解析為 CacheStorage 物件中 Cache 名稱的陣列。
示例
在此程式碼片段中,我們等待一個 activate 事件,然後執行一個 waitUntil() 塊,該塊在啟用新的 Service Worker 之前清理所有舊的、未使用的快取。在這裡,我們有一個包含我們想要保留的快取名稱的允許列表(cacheAllowlist)。我們使用 keys() 返回 CacheStorage 物件中的快取鍵,然後檢查每個鍵是否在允許列表中。如果不在,我們使用 CacheStorage.delete() 刪除它。
js
this.addEventListener("activate", (event) => {
const cacheAllowlist = ["v2"];
event.waitUntil(
caches.keys().then((keyList) =>
Promise.all(
keyList.map((key) => {
if (!cacheAllowlist.includes(key)) {
return caches.delete(key);
}
return undefined;
}),
),
),
);
});
規範
| 規範 |
|---|
| Service Workers # cache-storage-keys |
瀏覽器相容性
載入中…