--- 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
。
在下面的例子中首先检测是否有名为 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.)被默认禁用。