CacheStorage:delete() 方法

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本工作。它自 ⁨2018 年 4 月⁩ 起已在所有瀏覽器中可用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Web Workers 中可用。

CacheStorage 介面的 delete() 方法會查詢與 cacheName 匹配的 Cache 物件,如果找到,則會刪除該 Cache 物件並返回一個解析為 truePromise。如果未找到 Cache 物件,則解析為 false

您可以透過視窗中的 Window.caches 屬性或在 worker 中的 WorkerGlobalScope.caches 屬性來訪問 CacheStorage

語法

js
delete(cacheName)

引數

cacheName

要刪除的快取的名稱。

返回值

一個 Promise,如果找到並刪除了 Cache 物件,則解析為 true,否則解析為 false

示例

在此程式碼片段中,我們等待一個 activate 事件,然後執行一個 waitUntil() 塊,在新的 service worker 啟用之前清理任何舊的、未使用的快取。在這裡,我們有一個想要保留的快取名稱陣列 (cachesToKeep)。我們使用 CacheStorage.keys 返回 CacheStorage 物件中的快取鍵,然後檢查每個鍵是否在陣列中。如果不在,我們使用 delete() 刪除它。

js
this.addEventListener("activate", (event) => {
  const cachesToKeep = ["v2"];

  event.waitUntil(
    caches.keys().then((keyList) =>
      Promise.all(
        keyList.map((key) => {
          if (!cachesToKeep.includes(key)) {
            return caches.delete(key);
          }
          return undefined;
        }),
      ),
    ),
  );
});

規範

規範
Service Workers
# cache-storage-delete

瀏覽器相容性

另見