JavaScript/Objekte/FetchEvent

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Die Schnittstelle FetchEvent ist eine erweiterte Form der Schnittstelle ExtendableEvent aus dem Serviceworker-API. Sie findet im fetch Event eines ServiceWorkers Verwendung.

Eigenschaften

  • request
  • clientId
  • preloadResponse
  • resultingClientId
  • replacesClientId
  • handled

Methoden

  • respondWidth()

Eigenschaften

request
Das JavaScript/WindowOrWorkerGlobalScope/fetch#Request-Objekt der HTTP Anfrage, die das fetch-Event auf dem Serviceworker ausgelöst hat. Aus Sicht des Serviceworkers finden alle Anfragen dieser Art über das Fetch-API statt, auch wenn der Browser eine neue Seite lädt, ein <img> Element ein Bild holt oder älterer JavaScript-Code einen AJAX-Aufruf über XMLHttpRequest macht.
clientId
der Wert der id-Eigenschaft des Serviceworker-Clients, der die Anfrage ausgelöst hat. Sie können das eigentliche Client-Objekt mit Hilfe der get()-Methode des Clients-Objekts abrufen.
preloadResponse
In dieser Eigenschaft finden Sie ein Promise, das bei inaktivem Navigations-Preload mit undefined erfüllt wird. Ist preloading aktiv, erhalten Sie mit diesem Promise die Response zum Preload-Request[1].
replacesClientId
(Bisher nur in Safari implementiert): wenn eine Seitennavigation stattfindet, steht hier die Client-ID der Seite, die durch die Navigation ersetzt wird.
resultingClientId
(Nicht in Safari implementiert): wenn eine Seitennavigation stattfindet, steht hier die Client-ID der Seite, die die vorherige Seite ersetzt.
handled

Methoden

respondWith()

Syntax
fetchEvent.respondWith(response);
Parameter
response
Ein Promise, das mit der Response erfüllt wird, die dem Serviceworker-Client als Antwort auf den Request geliefert werden soll. Wenn Sie die Reponse bereits haben, können Sie sie auch direkt übergeben.
Rückgabe
keine

Die respondWith()-Methode ist eine Variante von waitUntil(). Beide Methoden fügen der Liste der Lifetime-Promises ein weiteres Promise hinzu. respondWith() stellt zusätzlich die Response auf den Request zur Verfügung, der das Fetch-Event ausgelöst hat.

Beachten Sie: Wenn Sie respondWith im fetch-Eventhandler nicht aufrufen, führt der Browser einen regulären Fetch durch.

Referenzen

  1. Google Web Updates: Navigation Preload, abgerufen am 20.08.2021