NavigationPreloadManager: setHeaderValue() Methode

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

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

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