CacheStorage: has() 方法

Baseline 已广泛支持

此功能已成熟,可跨多种设备和浏览器版本工作。它自 ⁨2018 年 4 月⁩ 起已在所有浏览器中可用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

has() 方法是 CacheStorage 接口的一个方法,它返回一个 Promise。如果一个 Cache 对象与 cacheName 匹配,则该 Promise 会解析为 true

您可以通过窗口中的 Window.caches 属性或在 worker 中的 WorkerGlobalScope.caches 属性来访问 CacheStorage

语法

js
has(cacheName)

参数

cacheName

一个字符串,表示您要在 CacheStorage 中查找的 Cache 对象的名称。

返回值

一个 Promise,如果缓存存在,则解析为 true;如果不存在,则解析为 false

示例

以下示例首先检查名为 'v1' 的缓存是否存在。如果存在,则向其中添加一个资源列表。如果不存在,则执行某种缓存设置函数。

js
caches
  .has("v1")
  .then((hasCache) => {
    if (!hasCache) {
      someCacheSetupFunction();
    } else {
      caches.open("v1").then((cache) => cache.addAll(myAssets));
    }
  })
  .catch(() => {
    // Handle exception here.
  });

规范

规范
Service Workers
# cache-storage-has

浏览器兼容性

另见