BackgroundFetchManager: fetch()-Methode

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Hinweis: Dieses Feature ist verfügbar in Web Workers.

Die fetch()-Methode der BackgroundFetchManager-Schnittstelle initiiert einen Hintergrundabruf, basierend auf einer oder mehreren URLs oder Request-Objekten.

Syntax

js
fetch(id, requests)
fetch(id, requests, options)

Parameter

id

Ein vom Entwickler definierter Bezeichner, der an andere Methoden übergeben werden kann, um die BackgroundFetchRegistration für diesen Vorgang abzurufen.

requests

Ein RequestInfo-Objekt oder ein Array von RequestInfo-Objekten.

Jedes RequestInfo-Objekt ist ein Request-Objekt oder ein String, der als input-Argument an den Request()-Konstruktor übergeben wird.

options Optional

Ein Objekt, das verwendet wird, um das Fortschrittsdialogfeld des Abrufs anzupassen, das der Browser dem Benutzer zeigt. Es hat folgende Eigenschaften:

title Optional

Ein String, der als Titel für das Fortschrittsdialogfeld verwendet wird.

icons Optional

Ein Array von Objekten, die jeweils ein Symbol darstellen, das der Browser für das Fortschrittsdialogfeld verwenden kann. Jedes Objekt hat die folgenden Eigenschaften:

src

Ein String, der eine URL zur Symbol-Datei darstellt.

sizes Optional

Ein String, der die Größen des Bildes darstellt, ausgedrückt mit der gleichen Syntax wie das sizes-Attribut des <link>-Elements.

type Optional

Ein String, der den MIME-Typ des Symbols darstellt.

label Optional

Ein String, der den zugänglichen Namen des Symbols darstellt.

downloadTotal Optional

Eine Zahl, die die geschätzte Gesamtdownloadgröße in Bytes für den Abrufvorgang darstellt. Dies wird verwendet, um dem Benutzer anzuzeigen, wie groß der Download ist, und um den Downloadfortschritt zu zeigen.

Sobald die Gesamtdownloadgröße downloadTotal überschreitet, wird der Abruf abgebrochen.

Rückgabewert

Ein Promise, das mit einem BackgroundFetchRegistration-Objekt aufgelöst wird.

Ausnahmen

TypeError

Tritt auf, wenn keine Anfrage bereitgestellt wird, wenn der Modus einer Anfrage no-cors ist, wenn kein Servicearbeiter vorhanden ist, bereits eine Anfrage mit der angeforderten id existiert oder die Anfrage fehlschlägt.

AbortError DOMException

Zeigt an, dass der Abruf abgebrochen wurde.

NotAllowedError DOMException

Zeigt an, dass keine Benutzererlaubnis für Hintergrundabrufe erteilt wurde.

QuotaExceededError DOMException

Wird ausgelöst, wenn das Speichern von Anfragen aufgrund des Überschreitens des Speicherlimits des Browsers fehlschlägt.

Beispiele

Das folgende Beispiel zeigt, wie fetch() verwendet wird, um einen Hintergrundabruf zu initiieren. Mit einem aktiven Servicearbeiters verwenden Sie die ServiceWorkerRegistration.backgroundFetch-Eigenschaft, um auf das BackgroundFetchManager-Objekt zuzugreifen und dessen fetch() -Methode aufzurufen.

js
navigator.serviceWorker.ready.then(async (swReg) => {
  const bgFetch = await swReg.backgroundFetch.fetch(
    "my-fetch",
    ["/ep-5.mp3", "ep-5-artwork.jpg"],
    {
      title: "Episode 5: Interesting things.",
      icons: [
        {
          sizes: "300x300",
          src: "/ep-5-icon.png",
          type: "image/png",
          label: "Downloading a show",
        },
      ],
      downloadTotal: 60 * 1024 * 1024,
    },
  );
});

Spezifikationen

Specification
Background Fetch
# background-fetch-manager-fetch

Browser-Kompatibilität

BCD tables only load in the browser