Hello <script> if ( 'serviceWorker' in navigator ) { // Delay registration until after the page has loaded, to ensure that our // precaching requests don't degrade the first visit experience. // See https://developers.google.com/web/fundamentals/instant-and-offline/service-worker/registration window.addEventListener('load', function () { navigator.serviceWorker .register('service-worker.js') .then(function (reg) { // updatefound is fired if service-worker.js changes. reg.onupdatefound = function () { // The updatefound event implies that reg.installing is set; see // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event var installingWorker = reg.installing; installingWorker.onstatechange = function () { /* eslint-disable default-case */ switch (installingWorker.state) { case 'installed': console.log('New or updated content is available.', navigator.serviceWorker.controller); break; case 'redundant': console.error( 'The installing service worker became redundant.' ); break; } }; }; }) .catch(function (e) { console.error('Error during service worker registration:', e); }); }); } </script> <script> console.log('controller', navigator.serviceWorker.controller) window.addEventListener('message', (e) => { console.log(88, e.data); if (navigator.serviceWorker.controller) { navigator.serviceWorker.controller.postMessage(e.data); } else { alert('Ooops, seems like your preview is denying updation. How about we slap a quick refresh on him?'); location.reload(); } }); </script>