Service Workers & Progressive Web Apps
What is the best practice for handling PWA updates?
let newWorker;
navigator.serviceWorker.addEventListener('controllerchange', () => {
if (newWorker) {
showUpdateNotification();
}
});
navigator.serviceWorker.register('/sw.js').then(registration => {
registration.addEventListener('updatefound', () => {
newWorker = registration.installing;
newWorker.addEventListener('statechange', () => {
if (newWorker.state === 'installed') {
if (navigator.serviceWorker.controller) {
showUpdateAvailable();
}
}
});
});
});