CacheStorage.has()

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

CacheStorage 对象的 has()方法返回一个 Promise 对象,当 Cache 对象有 cacheName  时被处理为  true

语法

caches.has(cacheName).then(function(boolean) {
  // true: 缓存存在
});

返回值

返回一个 Promise 对象,缓存存在时resolve的布尔值为 true 否则为 false 。

参数

cacheName
A DOMString representing the name of the Cache object you are looking for in the CacheStorage.

例子

在下面的例子中首先检测是否有名为 v1 的缓存存在, 如果存在我们会向其添加内容,,如果不存在我们会做些对应的初始化动作。

caches.has('v1').then(function(hasCache) {
  if (!hasCache) {
    someCacheSetupfunction();
  } else {
    caches.open('v1').then(function(cache) {
      return cache.addAll(myAssets);
    });
  }
}).catch(function() {
  // 处理异常
});

规范

规范 状态 附加信息
Service Workers
CacheStorage
Editor's Draft 初始定义

浏览器兼容性

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 40.0 (Yes) 44 (44)[1] 未实现 ? 未实现
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 未实现 未实现 44.0 (44) (Yes) (Yes) (Yes) 40.0

[1] Service workers (and Push) 在 Firefox 45 & 52 Extended Support Releases (ESR.)被默认禁用。

参考

文档标签和贡献者

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