NavigationPreloadManager: setHeaderValue() method
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.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The setHeaderValue()
method of the NavigationPreloadManager
interface sets the value of the Service-Worker-Navigation-Preload
header that will be sent with requests resulting from a fetch()
operation made during service worker navigation preloading.
It returns an empty Promise
that resolves with undefined
.
The presence of the Service-Worker-Navigation-Preload
header in preloading requests allows servers to configure the returned resource differently for preloading fetch requests than from normal fetch requests.
The default directive is set to true
: this method allows the possibility of configuring multiple different responses to preload requests.
Note:
If a different response may result from setting this header, the server must set Vary: Service-Worker-Navigation-Preload
to ensure that the different responses are cached.
Syntax
setHeaderValue(value)
Parameters
value
-
An arbitrary string value, which the target server uses to determine what should returned for the requested resource.
Return value
Exceptions
InvalidStateError
DOMException
-
There is no active worker associated with the registration to which this
NavigationPreloadManager
belongs.
Examples
The code below demonstrates how the value might be set.
navigator.serviceWorker.ready
.then((registration) =>
registration.navigationPreload.setHeaderValue(newValue),
)
.then(() => console.log("Done!"))
.catch((e) =>
console.error(`NavigationPreloadManager not supported: ${e.message}`),
);
Specifications
Specification |
---|
Service Workers # dom-navigationpreloadmanager-setheadervalue |
Browser compatibility
BCD tables only load in the browser