CacheStorage: keys() Methode
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.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die keys()
Methode der CacheStorage
Schnittstelle gibt ein Promise
zurück, das mit einem Array aufgelöst wird, welches Zeichenketten enthält, die allen benannten Cache
Objekten entsprechen, die vom CacheStorage
Objekt in der Reihenfolge, in der sie erstellt wurden, verfolgt werden. Verwenden Sie diese Methode, um über eine Liste aller Cache
Objekte zu iterieren.
Sie können auf CacheStorage
über die Window.caches
Eigenschaft in Fenstern oder über die WorkerGlobalScope.caches
Eigenschaft in Workern zugreifen.
Syntax
keys()
Parameter
Keine.
Rückgabewert
ein Promise
, das mit einem Array der Cache
Namen innerhalb des CacheStorage
Objekts aufgelöst wird.
Beispiele
In diesem Codebeispiel warten wir auf ein activate
Ereignis und führen dann einen waitUntil()
Block aus, der alle alten, unbenutzten Caches bereinigt, bevor ein neuer Service Worker aktiviert wird. Hier haben wir eine Whitelist, die die Namen der Caches enthält, die wir behalten möchten (cacheAllowlist
). Wir geben die Schlüssel der Caches im CacheStorage
Objekt mit keys()
zurück und prüfen dann jeden Schlüssel, um festzustellen, ob er in der Whitelist enthalten ist. Wenn nicht, löschen wir ihn mit CacheStorage.delete()
.
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;
}),
),
),
);
});
Spezifikationen
Specification |
---|
Service Workers # cache-storage-keys |