Cache: keys() 方法

Baseline 已廣泛支援

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

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

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

keys() 方法是 Cache 介面的一個方法,它返回一個 Promise,該 Promise 會解析為一個 Request 物件陣列,這些物件代表了 Cache 的所有鍵。

請求的返回順序與它們被插入的順序相同。

注意: 具有相同 URL 但不同請求頭的請求,如果它們的響應設定了 VARY 請求頭,則可能會被返回。

語法

js
keys()
keys(request)
keys(request, options)

引數

request 可選

要返回的 Request,如果需要特定鍵。這可以是一個 Request 物件或一個 URL。

options 可選

一個物件,其屬性控制在 keys 操作中如何進行匹配。可用的選項是:

ignoreSearch

一個布林值,指定匹配過程是否應忽略 URL 中的查詢字串。如果設定為 true,則在執行匹配時會忽略 http://foo.com/?value=bar 中的 ?value=bar 部分。預設為 false

ignoreMethod

一個布林值,當設定為 true 時,可以阻止匹配操作驗證 RequestHTTP 方法(通常只允許 GETHEAD)。預設為 false

ignoreVary

一個布林值,當設定為 true 時,會告知匹配操作不執行 VARY 請求頭匹配。換句話說,如果 URL 匹配,無論 Response 物件是否有 VARY 請求頭,都會返回匹配項。預設為 false

cacheName

一個字串,代表要搜尋的特定快取。請注意,此選項會被 Cache.keys() 忽略。

返回值

一個 Promise,它解析為一個 Request 物件陣列。

示例

js
caches
  .open("v1")
  .then((cache) => cache.keys())
  .then((keys) => {
    keys.forEach((request, index, array) => {
      cache.delete(request);
    });
  });

規範

規範
Service Workers
# cache-keys

瀏覽器相容性

另見