NavigationPreloadManager: setHeaderValue() 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 setHeaderValue() Methode der NavigationPreloadManager Schnittstelle setzt den Wert des Service-Worker-Navigation-Preload Headers, der mit Anfragen gesendet wird, die aus einem fetch() Vorgang während des Vorladens von Service Worker-Navigationen resultieren. Sie gibt ein leeres Promise zurück, das mit undefined aufgelöst wird.

Das Vorhandensein des Service-Worker-Navigation-Preload Headers in Vorladeanforderungen ermöglicht es Servern, die zurückgegebene Ressource für Vorladeabfragen anders zu konfigurieren als für normale Abfragen. Die Standardanweisung ist auf true gesetzt: Diese Methode ermöglicht die Möglichkeit, mehrere unterschiedliche Antworten auf Vorladeanfragen zu konfigurieren.

Hinweis: Wenn durch das Setzen dieses Headers eine andere Antwort resultieren kann, muss der Server Vary: Service-Worker-Navigation-Preload setzen, um sicherzustellen, dass die unterschiedlichen Antworten zwischengespeichert werden.

Syntax

js
setHeaderValue(value)

Parameter

value

Ein beliebiger String-Wert, den der Zielserver verwendet, um zu bestimmen, was für die angeforderte Ressource zurückgegeben werden soll.

Rückgabewert

Ein Promise, das mit undefined aufgelöst wird.

Ausnahmen

InvalidStateError DOMException

Es gibt keinen aktiven Worker, der mit der Registrierung verbunden ist, zu der dieser NavigationPreloadManager gehört.

Beispiele

Der folgende Code demonstriert, wie der Wert gesetzt werden könnte.

js
navigator.serviceWorker.ready
  .then((registration) =>
    registration.navigationPreload.setHeaderValue(newValue),
  )
  .then(() => console.log("Done!"))
  .catch((e) =>
    console.error(`NavigationPreloadManager not supported: ${e.message}`),
  );

Spezifikationen

Specification
Service Workers
# dom-navigationpreloadmanager-setheadervalue

Browser-Kompatibilität

BCD tables only load in the browser