isNavigationPreloadSupported
First added
Workbox
About
Checks whether the current browser supports navigation preloading.
Usage
import {
enableNavigationPreload,
disableNavigationPreload,
isNavigationPreloadSupported,
NavigationRoute,
NetworkFirst,
} from "serwist";
declare const self: ServiceWorkerGlobalScope;
self.addEventListener("message", (event) => {
if (event.data && event.data.type === "TOGGLE_NAV_PRELOAD") {
event.waitUntil(
(async () => {
if (isNavigationPreloadSupported()) {
const state = await self.registration.navigationPreload.getState();
if (state.enabled) {
disableNavigationPreload();
} else {
enableNavigationPreload();
}
}
})(),
);
}
});
// Swap in NetworkOnly, CacheFirst, or StaleWhileRevalidate as needed.
const navigationStrategy = new NetworkFirst({
cacheName: "cached-navigations",
});
const navigationRoute = new NavigationRoute(navigationStrategy, {
// Optionally, provide a allow/denylist of RegExps to determine
// which paths will match this route.
// allowlist: [],
// denylist: [],
});
serwist.registerRoute(navigationRoute);