Request: isHistoryNavigation property
Note: This feature is available in Web Workers.
The isHistoryNavigation
read-only property of the Request
interface is a boolean indicating whether the request is a history navigation.
A history navigation is a navigation within the browser's history, made by calling History.go()
, History.back()
, History.forward()
, Navigation.traverseTo()
, Navigation.back()
, Navigation.forward()
, or directly by clicking the browser's back or forward navigation button.
Value
A boolean value.
Examples
This example executes in a service worker. It listens for the fetch
event. In the event handler, the service worker checks the isHistoryNavigation
property to know whether the request happened because of a history navigation. If so, it attempts to respond with a cached response. If the cache does not contain a response for this request, the service worker fetches a response from the network, caches a clone of it, and responds with the network response.
self.addEventListener("request", (event) => {
// ...
if (event.request.isHistoryNavigation) {
event.respondWith(
caches.match(event.request).then((response) => {
if (response !== undefined) {
return response;
} else {
return fetch(event.request).then((response) => {
let responseClone = response.clone();
caches.open("v1").then((cache) => {
cache.put(event.request, responseClone);
});
return response;
});
}
}),
);
}
// ...
});
Specifications
Specification |
---|
Fetch Standard # ref-for-dom-request-ishistorynavigation① |
Browser compatibility
BCD tables only load in the browser