--- title: Cache.keys() slug: Web/API/Cache/keys translation_of: Web/API/Cache/keys ---

{{APIRef("Service Workers API")}}{{SeeCompatTable}}

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

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

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

语法

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

返回值

返回一个解析为 {{domxref("Cache")}} 键数组的 {{jsxref("Promise")}}。

参数

request {{optional_inline}}
如果一个相关键被指定,则返对应的 {{domxref("Request")}} 。
options {{optional_inline}}
一个对象,它的属性决定了 keys 操作中的匹配操作是如何执行的。可选的属性有:

示例

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

规范

规范 状态 备注
{{SpecName('Service Workers', '#cache', 'Cache')}} {{Spec2('Service Workers')}} Initial definition.

浏览器兼容性

{{CompatibilityTable}}
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support {{CompatChrome(40.0)}}[1] {{CompatGeckoDesktop(39)}}[2] {{CompatNo}} 24 {{CompatNo}}
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support {{CompatNo}} {{CompatNo}} {{CompatGeckoMobile(39)}} {{CompatUnknown}} {{CompatNo}} {{CompatUnknown}} {{CompatNo}} {{CompatChrome(40.0)}}[1]

[1] 可选参数只支持 ignoreSearch 和 cacheName 

[2] Service workers (以及Push) 在 Firefox 45 Extended Support Release (ESR) 中已经被禁止了。

参见