Cache.keys()

The keys() method of the Cache interface returns a Promise that resolves to an array of Cache keys.

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

cache.keys(request, {options}).then(function(keys) {
  // do something with your array of requests
});

Parameters

request Optional

The Request want to return, if a specific key is desired. This can be a Request 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 of http://foo.com/?value=bar would be ignored when performing a match. It defaults to false.
  • ignoreMethod: A boolean value that, when set to true, prevents matching operations from validating the Request HTTP method (normally only GET and HEAD are allowed.) It defaults to false.
  • ignoreVary: A boolean value that, when set to true, tells the matching operation not to perform VARY header matching. In other words, if the URL matches you will get a match regardless of whether the Response object has a VARY header. It defaults to false.
  • cacheName: A DOMString that represents a specific cache to search within. Note that this option is ignored by Cache.keys().

Return value

A Promise that resolves to an array of Cache keys.

Examples

caches.open('v1').then(function(cache) {
  cache.keys().then(function(keys) {
    keys.forEach(function(request, index, array) {
      cache.delete(request);
    });
  });
})

Specifications

Specification
Service Workers 1
# cache-keys

Browser compatibility

BCD tables only load in the browser

See also