CacheStorage: keys() 方法
注意: 此功能在Web Workers中可用。
keys()
方法是 CacheStorage
接口的方法,它返回一个 Promise
,该 Promise
将解析为一个数组,该数组包含与由 CacheStorage
对象跟踪的所有命名 Cache
对象相对应的字符串,其顺序为它们创建的顺序。使用此方法可以遍历所有 Cache
对象的列表。
您可以通过窗口中的 Window.caches
属性或工作线程中的 WorkerGlobalScope.caches
属性访问 CacheStorage
。
语法
js
keys()
参数
无。
返回值
一个 Promise
,它解析为一个包含 CacheStorage
对象中的 Cache
名称的数组。
示例
在此代码片段中,我们等待一个activate
事件,然后运行一个waitUntil()
块,该块在激活新的服务工作线程之前清除所有旧的、未使用的缓存。这里我们有一个允许列表,其中包含我们想要保留的缓存的名称 (cacheAllowlist
)。我们使用 keys()
返回 CacheStorage
对象中的缓存的键,然后检查每个键是否在允许列表中。如果没有,我们使用CacheStorage.delete()
删除它。
js
this.addEventListener("activate", (event) => {
const cacheAllowlist = ["v2"];
event.waitUntil(
caches.keys().then((keyList) =>
Promise.all(
keyList.map((key) => {
if (!cacheAllowlist.includes(key)) {
return caches.delete(key);
}
}),
),
),
);
});
规范
规范 |
---|
Service Workers # cache-storage-keys |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。