Cache: matchAll() 方法
注意:此功能在 Web Workers 中可用。
Cache 接口的 matchAll() 方法返回一个 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,则阻止匹配操作验证Request的http方法(通常只允许GET和HEAD)。默认为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 |
浏览器兼容性
加载中…