CacheStorage: keys() 方法
注意:此功能在 Web Workers 中可用。
CacheStorage 接口的 keys() 方法返回一个 Promise,该 Promise 会解析为一个字符串数组,这些字符串对应于由 CacheStorage 对象跟踪的所有命名 Cache 对象,并且顺序与创建它们的顺序相同。使用此方法可以遍历所有 Cache 对象列表。
您可以通过窗口中的 Window.caches 属性或在 worker 中的 WorkerGlobalScope.caches 属性来访问 CacheStorage。
语法
js
keys()
参数
无。
返回值
一个 Promise,它解析为 CacheStorage 对象中 Cache 名称的数组。
示例
在此代码片段中,我们等待一个 activate 事件,然后运行一个 waitUntil() 块,该块在激活新的 Service Worker 之前清理所有旧的、未使用的缓存。在这里,我们有一个包含我们想要保留的缓存名称的允许列表(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);
}
return undefined;
}),
),
),
);
});
规范
| 规范 |
|---|
| Service Workers # cache-storage-keys |
浏览器兼容性
加载中…