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

浏览器兼容性

另见