CacheStorage.has()

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

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

语法

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

返回值

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

参数

cacheName

一个表示你正在 CacheStorage 中查找的 Cache 对象 name 的 DOMString.

例子

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

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

规范

Specification
Service Workers
# cache-storage-has

浏览器兼容性

BCD tables only load in the browser

参考