A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.cdn.mozilla.net/de/docs/Web/API/FetchEvent/respondWith below:

FetchEvent: respondWith() Methode - Web-APIs

FetchEvent: respondWith() Methode

Baseline Widely available *

Hinweis: Diese Funktion ist nur in Service Workers verfügbar.

Die respondWith()-Methode von FetchEvent verhindert die standardmäßige Behandlung von Fetch-Anfragen durch den Browser und ermöglicht es Ihnen, ein eigenes Versprechen für eine Response bereitzustellen.

In den meisten Fällen können Sie jede Antwort bereitstellen, die der Empfänger versteht. Wenn zum Beispiel ein <img> die Anfrage initiiert, muss der Antwortkörper Bilddaten enthalten. Aus Sicherheitsgründen gibt es einige allgemeine Regeln:

Festlegen der finalen URL einer Ressource

Ab Firefox 59 wird, wenn ein Service Worker eine Response an FetchEvent.respondWith() liefert, der Wert Response.url an die abgefangene Netzwerkanforderung als endgültige aufgelöste URL weitergegeben. Wenn der Wert Response.url der leere String ist, wird die FetchEvent.request.url als finale URL verwendet.

In der Vergangenheit wurde die FetchEvent.request.url in allen Fällen als finale URL verwendet. Die bereitgestellte Response.url wurde effektiv ignoriert.

Das bedeutet beispielsweise, dass wenn ein Service Worker ein Stylesheet oder ein Worker-Skript abfängt, die bereitgestellte Response.url zur Auflösung aller relativen @import oder importScripts()-Subresource-Ladevorgänge verwendet wird (Firefox bug 1222008).

Für die meisten Arten von Netzwerkanfragen hat diese Änderung keine Auswirkungen, da die finale URL nicht sichtbar ist. Es gibt jedoch einige Fälle, in denen es von Bedeutung ist:

Beachten Sie, dass Navigationsanfragen für Windows und iframes die finale URL NICHT verwenden. Die Art und Weise, wie die HTML-Spezifikation Umleitungen für Navigationen behandelt, führt dazu, dass die Anforderungs-URL für die resultierende Window.location verwendet wird. Dies bedeutet, dass Websites immer noch eine "alternative" Ansicht einer Webseite bereitstellen können, wenn im Offline-Modus keine Änderung der benutzersichtbaren URL erfolgt.

Syntax Parameter
response

Eine Response oder ein Promise, das sich zu einer Response auflöst. Andernfalls wird ein Netzwerkfehler an Fetch zurückgemeldet.

Rückgabewert

Keiner (undefined).

Ausnahmen
NetworkError DOMException

Wird zurückgegeben, wenn ein Netzwerkfehler bei bestimmten Kombinationen von FetchEvent.request.mode und Response.type-Werten ausgelöst wird, wie in den oben aufgeführten "allgemeinen Regeln" angedeutet.

InvalidStateError DOMException

Wird zurückgegeben, wenn das Ereignis nicht gesendet wurde oder respondWith() bereits aufgerufen wurde.

Beispiele

Dieses Fetch-Ereignis versucht, eine Antwort von der Cache-API zurückzugeben, andernfalls wird auf das Netzwerk zurückgegriffen.

addEventListener("fetch", (event) => {
  // Prevent the default, and handle the request ourselves.
  event.respondWith(
    (async () => {
      // Try to get the response from a cache.
      const cachedResponse = await caches.match(event.request);
      // Return it if we found one.
      if (cachedResponse) return cachedResponse;
      // If we didn't find a match in the cache, use the network.
      return fetch(event.request);
    })(),
  );
});

Hinweis:>caches.match() ist eine Komfortmethode. Eine gleichwertige Funktionalität besteht darin, cache.match() auf jedem Cache aufzurufen (in der Reihenfolge, in der diese von caches.keys() zurückgegeben werden), bis eine Response zurückgegeben wird.

Spezifikationen Browser-Kompatibilität Siehe auch

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4