Cache.keys()

这篇翻译不完整。请帮忙从英语翻译这篇文章

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

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

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

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

语法

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()方法忽略。

示例

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

规范

规范 状态 备注
Service Workers
Cache
Working Draft Initial definition.

浏览器兼容性

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 40.0[1] 39 (39)[2] 未实现 24 未实现
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 未实现 未实现 39.0 (39) ? 未实现 ? 未实现 40.0[1]

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

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

参见

文档标签和贡献者

 此页面的贡献者: holynewbie
 最后编辑者: holynewbie,