Cache:matchAll() 方法
注意:此功能在Web Workers中可用。
matchAll()
方法是 Cache
接口的方法,它返回一个 Promise
,该 Promise 解析为 Cache
对象中所有匹配响应的数组。
语法
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
。
然后它记录匹配响应的数量。
caches.open("v1").then((cache) => {
cache.matchAll("/", { ignoreSearch: true }).then((responses) => {
console.log(`Found ${responses.length} matching responses`);
});
});
规范
规范 |
---|
Service Workers # cache-matchall |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。