CacheStorage.delete() - Web API 接口参考 编辑
这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
CacheStorage
接口的 delete
()
方法查找匹配 cacheName
的 Cache
对象,如果找到,则删除 Cache
对象并返回一个resolve为true的 Promise
. 如果未找到 Cache
对象,则返回 false
.
语法
caches.delete(cacheName).then(function(true) { //your cache is now deleted });
Returns
如果找到 Cache
对象,删除它,返回一个resolve为 true
的 Promise
,否则,返回 false
.
Parameters
- cacheName
- 想要删除的 cache 对象的名称。
实例
在此代码片段中,我们等待一个activate事件,然后运行一个 waitUntil()
块,其在一个新的 service worker 被激活前清除所有旧的、未使用的cache. 这里我们有一个白名单,其中包含我们想要保留的cache的name. 我们使用 CacheStorage.keys
返回 CacheStorage
对象中cache的键,然后检查每个键值,以查看它是否在白名单中。如果没有,我们使用 delete()
删除它。
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 | Status | Comment |
---|---|---|
Service Workers CacheStorage | Working Draft | Initial definition. |
浏览器兼容性
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 40.0 | 44 (44)[1] | 未实现 | ? | 未实现 |
Feature | Android | Android Webview | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | 未实现 | 未实现 | 44.0 (44) | (Yes) | (Yes) | (Yes) | 40.0 |
[1] Service workers (and Push) have been disabled in the Firefox 45 & 52 Extended Support Releases (ESR.)
See also
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论