Cache:matchAll() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中可用。

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

matchAll() 方法是 Cache 接口的方法,它返回一个 Promise,该 Promise 解析为 Cache 对象中所有匹配响应的数组。

语法

js
matchAll()
matchAll(request)
matchAll(request, options)

参数

request 可选

您尝试在 Cache 中查找响应的 Request。这可以是 Request 对象或 URL。如果省略此参数,您将获得此缓存中所有响应的副本。

options 可选

一个选项对象,允许您为执行的匹配设置特定的控制选项。可用的选项是

ignoreSearch

一个布尔值,指定匹配过程是否应忽略 URL 中的查询字符串。如果设置为 true,则在执行匹配时将忽略 http://foo.com/?value=bar?value=bar 部分。默认为 false

ignoreMethod

一个布尔值,当设置为 true 时,会阻止匹配操作验证 Requesthttp 方法(通常只允许 GETHEAD)。默认为 false

ignoreVary

一个布尔值,当设置为 true 时,会告诉匹配操作不要执行 VARY 标头匹配,即如果 URL 匹配,无论 Response 对象是否具有 VARY 标头,您都将获得匹配。默认为 false

返回值

一个 Promise,该 Promise 解析为 Cache 对象中所有匹配响应的数组。

注意:Cache.match()Cache.matchAll() 基本相同,除了它不是解析为所有匹配响应的数组,而是仅解析为第一个匹配响应(即 response[0])。

示例

以下示例检索 v1 缓存中与 URL / 匹配的所有响应,甚至包括潜在的查询参数。通过使用 { ignoreSearch: true },使用 matchAll 将检索 / 以及 /?value=bar

然后它记录匹配响应的数量。

js
caches.open("v1").then((cache) => {
  cache.matchAll("/", { ignoreSearch: true }).then((responses) => {
    console.log(`Found ${responses.length} matching responses`);
  });
});

规范

规范
Service Workers
# cache-matchall

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅