demo · v131

opt-in lifecycle

Auto-preload doesn't fire automatically — the SW has to opt in. This page surfaces every step: register the SW, see browser-mode opt-in in navigator.serviceWorker.controller, and probe the related Background Fetch / NavigationPreload modes that this builds on.

registration state

SW: ? controller: ? navigationPreload: ? router api: ?

log

the api

// service-worker.js
self.addEventListener("install", e => self.skipWaiting());
self.addEventListener("activate", e => {
  e.waitUntil(self.registration.navigationPreload?.enable());
  // The browser also auto-enables AutoPreload when handlers are minimal
});

// main page
const reg = await navigator.serviceWorker.register("/sw.js");
console.log("preload state:", await reg.navigationPreload?.getState());

see also