Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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 vor der Verwendung auf produktiven Webseiten.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die fetch() Methode der BackgroundFetchManager Schnittstelle initiiert einen Hintergrundabrufvorgang, gegeben durch eine oder mehrere URLs oder Request Objekte.

Syntax

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

Parameter

id

Eine vom Entwickler definierte Kennung, die an die anderen 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 den Fortschrittsdialog des Abrufs anzupassen, den der Browser dem Benutzer anzeigt. Es hat die folgenden Eigenschaften:

title Optional

Ein String, der als Titel für den Fortschrittsdialog verwendet wird.

icons Optional

Ein Array von Objekten, wobei jedes Objekt ein Symbol darstellt, das der Browser möglicherweise für den Fortschrittsdialog verwendet. Jedes Objekt hat die folgenden Eigenschaften:

src

Ein String, der eine URL zur Symboldatei 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 Gesamtgröße des Downloads in Bytes für den Abrufvorgang darstellt. Diese wird verwendet, um dem Benutzer anzuzeigen, wie groß der Download ist, und um den Benutzer über den Fortschritt des Downloads zu informieren.

Sobald die Gesamtgröße des Downloads downloadTotal überschreitet, wird der Abruf abgebrochen.

Rückgabewert

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

Ausnahmen

TypeError

Wird ausgelöst, wenn keine Anfrage bereitgestellt wird, wenn der Modus einer Anfrage no-cors ist, wenn kein Service Worker vorhanden ist, wenn eine Anfrage bereits mit der angeforderten id existiert oder die Anfrage fehlschlägt.

AbortError DOMException

Gibt an, dass der Abruf abgebrochen wurde.

NotAllowedError DOMException

Gibt an, dass keine Benutzererlaubnis erteilt wurde, um Hintergrundabrufe auszuführen.

QuotaExceededError

Wird ausgelöst, wenn das Speichern von Anfragen aufgrund Überschreitung des Browser-Speicherquotas nicht möglich war.

Beispiele

Das folgende Beispiel zeigt, wie fetch() verwendet wird, um einen Hintergrundabrufvorgang zu starten. Mit einem aktiven Service Worker verwenden Sie die ServiceWorkerRegistration.backgroundFetch Eigenschaft, um auf das BackgroundFetchManager Objekt zuzugreifen und rufen Sie dessen fetch() Methode auf.

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