CacheStorage: keys()-Methode
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die keys()
-Methode des CacheStorage
-Interfaces gibt ein Promise
zurück, das mit einem Array aufgelöst wird, das Zeichenfolgen enthält, die allen benannten Cache
-Objekten entsprechen, die vom CacheStorage
-Objekt in der Reihenfolge ihrer Erstellung 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 Code-Snippet 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 überprüfen dann jeden Schlüssel, um zu sehen, ob er sich in der Whitelist befindet.
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);
}
}),
),
),
);
});
Spezifikationen
Specification |
---|
Service Workers # cache-storage-keys |
Browser-Kompatibilität
BCD tables only load in the browser