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
requestOptional-
The
Requestfor which you are attempting to find responses in theCache. This can be aRequestobject or a URL. If this argument is omitted, you will get a copy of all responses in this cache. optionsOptional-
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=barpart ofhttp://foo.com/?value=barwould be ignored when performing a match. It defaults tofalse. ignoreMethod-
A boolean value that, when set to
true, prevents matching operations from validating theRequesthttpmethod (normally onlyGETandHEADare allowed.) It defaults tofalse. ignoreVary-
A boolean value that when set to
truetells the matching operation not to performVARYheader matching — i.e., if the URL matches you will get a match regardless of theResponseobject having aVARYheader 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
Loading…