CacheStorage:delete() 方法

安全上下文:此功能仅在安全上下文(HTTPS)中可用,在某些或所有支持的浏览器中。

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

delete() 方法是 CacheStorage 接口的方法,它查找与 cacheName 匹配的 Cache 对象,如果找到,则删除该 Cache 对象并返回一个 Promise,该 Promise 解析为 true。如果未找到 Cache 对象,则解析为 false

您可以通过窗口中的 Window.caches 属性或工作线程中的 WorkerGlobalScope.caches 属性访问 CacheStorage

语法

js
delete(cacheName)

参数

cacheName

要删除的缓存的名称。

返回值

一个 Promise,如果找到并删除了 Cache 对象,则解析为 true,否则解析为 false

示例

在此代码片段中,我们等待激活事件,然后运行一个 waitUntil() 块,该块在激活新的 Service Worker 之前清除任何旧的、未使用的缓存。这里我们有一个我们想要保留的缓存名称数组 (cachesToKeep)。我们使用 CacheStorage.keys 返回 CacheStorage 对象中缓存的键,然后检查每个键是否在数组中。如果不是,我们使用 delete() 删除它。

js
this.addEventListener("activate", (event) => {
  const cachesToKeep = ["v2"];

  event.waitUntil(
    caches.keys().then((keyList) =>
      Promise.all(
        keyList.map((key) => {
          if (!cachesToKeep.includes(key)) {
            return caches.delete(key);
          }
        }),
      ),
    ),
  );
});

规范

规范
Service Workers
# cache-storage-delete

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅