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: 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

js
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().

js
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

Siehe auch