--- title: CacheStorage.has() slug: Web/API/CacheStorage/has translation_of: Web/API/CacheStorage/has ---

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

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

语法

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

返回值

返回一个 {{jsxref("Promise")}} 对象,缓存存在时resolve的布尔值为 true 否则为 false 。

参数

cacheName
一个表示你正在 {{domxref("CacheStorage")}} 中查找的 {{domxref("Cache")}} 对象name的 {{domxref("DOMString")}}.

例子

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

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

规范

规范 状态 附加信息
{{SpecName('Service Workers', '#cache-storage', 'CacheStorage')}} {{Spec2('Service Workers')}} 初始定义

浏览器兼容性

{{CompatibilityTable}}

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatChrome(40.0)}} {{CompatVersionUnknown}} {{CompatGeckoDesktop(44)}}[1] {{CompatNo}} {{CompatUnknown}} {{CompatNo}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support {{CompatNo}} {{CompatNo}} {{CompatGeckoMobile(44)}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatChrome(40.0)}}

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

参考