// Register service worker if ('serviceWorker' in navigator) { document.addEventListener('DOMContentLoaded', () => { setTimeout(initSW, 3500); }); document.addEventListener('scroll', initSWEvent); document.addEventListener('mousemove', initSWEvent); document.addEventListener('touchstart', initSWEvent); function initSW() { if (window.swDidInit) { return false; } window.swDidInit = true; // flag to ensure script does not get added to DOM more than once navigator.serviceWorker .register('/sw.js') .then(() => { console.log('Service Worker Registered'); }); } function initSWEvent() { initSW(); event.currentTarget.removeEventListener(event.type, initSWEvent); } }