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

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

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);
          }
          return undefined;
        }),
      ),
    ),
  );
});

Spezifikationen

Specification
Service Workers
# cache-storage-keys

Browser-Kompatibilität

Siehe auch