Cache: matchAll() method
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The matchAll()
method of the Cache
interface returns a Promise
that resolves to an array of all matching
responses in the Cache
object.
Syntax
matchAll()
matchAll(request)
matchAll(request, options)
Parameters
request
Optional-
The
Request
for which you are attempting to find responses in theCache
. This can be aRequest
object or a URL. If this argument is omitted, you will get a copy of all responses in this cache. options
Optional-
An options object allowing you to set specific control options for the matching performed. The available options are:
ignoreSearch
-
A boolean value that specifies whether the matching process should ignore the query string in the URL. If set to
true
, the?value=bar
part ofhttp://foo.com/?value=bar
would be ignored when performing a match. It defaults tofalse
. ignoreMethod
-
A boolean value that, when set to
true
, prevents matching operations from validating theRequest
http
method (normally onlyGET
andHEAD
are allowed.) It defaults tofalse
. ignoreVary
-
A boolean value that when set to
true
tells the matching operation not to performVARY
header matching — i.e. if the URL matches you will get a match regardless of theResponse
object having aVARY
header or not. It defaults tofalse
.
Return value
A Promise
that resolves to an array of all matching responses in the
Cache
object.
Note: Cache.match()
is basically identical to
Cache.matchAll()
, except that rather than resolving with an array of all
matching responses, it resolves with the first matching response only (that is,
response[0]
).
Examples
The following example retrieves all responses in the v1
cache matching the URL /
, even including potential query parameters. By using { ignoreSearch: true }
, using matchAll
would retrieve /
as well as /?value=bar
.
It then logs the number of matching responses.
caches.open("v1").then((cache) => {
cache.matchAll("/", { ignoreSearch: true }).then((responses) => {
console.log(`Found ${responses.length} matching responses`);
});
});
Specifications
Specification |
---|
Service Workers # cache-matchall |
Browser compatibility
BCD tables only load in the browser