这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。
The delete
()
method of the CacheStorage
interface finds the Cache
object matching the cacheName
, and if found, deletes the Cache
object and returns a Promise
that resolves to true
. If no Cache
object is found, it returns false
.
语法
caches.delete(cacheName).then(function(true) { //your cache is now deleted });
Returns
a Promise
that resolves to true
if the Cache
object is found and deleted, and false
otherwise.
Parameters
- cacheName
- The name of the cache you want to delete.
实例
In this code snippet we wait for an activate event, and then run a waitUntil()
block that clears up any old, unused caches before a new service worker is activated. Here we have a whitelist containing the name of the cache we want to keep. We return the keys of the caches in the CacheStorage
object using CacheStorage.keys
, then check each key to see if it is in the whitelist. If not, we delete it using 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); } })); }) ); });
Specifications
Specification | Status | Comment |
---|---|---|
Service Workers CacheStorage |
Working Draft | Initial definition. |
Browser compatibility
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.)