Cache: keys() 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 keys()
method of the Cache
interface returns a
Promise
that resolves to an array of Request
objects
representing the keys of the Cache
.
The requests are returned in the same order that they were inserted.
Note: Requests with duplicate URLs but different headers can be
returned if their responses have the VARY
header set on them.
Syntax
keys()
keys(request)
keys(request, options)
Parameters
request
Optional-
The
Request
want to return, if a specific key is desired. This can be aRequest
object or a URL. options
Optional-
An object whose properties control how matching is done in the
keys
operation. 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. In other words, if the URL matches you will get a match regardless of whether theResponse
object has aVARY
header. It defaults tofalse
. cacheName
-
A string that represents a specific cache to search within. Note that this option is ignored by
Cache.keys()
.
Return value
Examples
caches.open("v1").then((cache) => {
cache.keys().then((keys) => {
keys.forEach((request, index, array) => {
cache.delete(request);
});
});
});
Specifications
Specification |
---|
Service Workers # cache-keys |
Browser compatibility
BCD tables only load in the browser