Cache.keys()

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.

实验性: 这是一项实验性技术
在将其用于生产之前,请仔细检查浏览器兼容性表格

Cache 接口的 keys() 方法返回一个 Promise ,这个 Promise 将解析为一个Cache 键的数组。

请求将以它们被插入的顺序返回。

备注: 具有相同 URL 但不同请求头的请求,如果它们的响应头中有 VARY 头部,则他们可以被返回。

语法

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

返回值

返回一个解析为 Cache 键数组的 Promise

参数

request 可选

如果一个相关键被指定,则返对应的 Request

options 可选

一个对象,它的属性决定了 keys 操作中的匹配操作是如何执行的。可选的属性有:

  • ignoreSearch: 一个 Boolean 值,指定了匹配操作是否忽略 url 中的查询部分。如果为 true,在执行匹配操作时, http://foo.com/?value=bar?value=bar 部分将会被忽。默认为 false
  • ignoreMethod: 一个 Boolean 值,当为 true 时,将会阻止匹配操作验证 Request 的 HTTP 方法(通常只有 GET 和 HEAD 方法被允许)。默认为 false。
  • ignoreVary: 一个 Boolean 值,当为 true 时,告诉匹配操作不要验证 VARY 头部。换句话说,如果 URL 匹配,你会得到一个匹配而不管 Response 对象是否有 VARY 头部。默认为 false。
  • cacheName: 一个 DOMString 值,描述了在一个特定的 cache 中进行匹配。注意这个选项会被 Cache.keys() 方法忽略。

示例

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

规范

Specification
Service Workers
# cache-keys

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobileserver
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
Deno
keys

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

参见