CacheStorage.delete()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2018.
CacheStorage
接口的 delete()
方法查找匹配 cacheName
的 Cache
对象。如果找到,则删除 Cache
对象,则返回的 Promise
兑现为 true
;如果未找到 Cache
对象,则兑现为 false
。
你可以通过窗口的 Window.caches
属性或 worker 的 WorkerGlobalScope.caches
属性访问 CacheStorage
。
语法
js
delete(cacheName)
参数
cacheName
-
想要删除的缓存对象的名称。
返回值
示例
在此代码片段中,我们等待一个 activate 事件,然后运行一个 waitUntil()
块,其在一个新的 service worker 被激活前清除所有旧的、未使用的 cache. 这里我们有一个白名单,其中包含我们想要保留的 cache 的 name. 我们使用 CacheStorage.keys
返回 CacheStorage
对象中 cache 的键,然后检查每个键值,以查看它是否在白名单中。如果没有,我们使用 delete()
删除它。
js
this.addEventListener("activate", function (event) {
var cacheWhitelist = ["v2"];
event.waitUntil(
caches.keys().then(function (keyList) {
return Promise.all(
keyList.map(function (key) {
if (cacheWhitelist.indexOf(key) === -1) {
return caches.delete(key);
}
}),
);
}),
);
});
规范
Specification |
---|
Service Workers # cache-storage-delete |
浏览器兼容性
BCD tables only load in the browser