Skip to content

Instantly share code, notes, and snippets.

@moshfeu
Created August 31, 2019 18:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save moshfeu/26edf48886210170baac5e4742a74ee3 to your computer and use it in GitHub Desktop.
Save moshfeu/26edf48886210170baac5e4742a74ee3 to your computer and use it in GitHub Desktop.
Start / Stop interval on Service Worker
<button onclick="sendMessage('start')">Start Listen</button>
<button onclick="sendMessage('stop')">Stop Listen</button>
<script>
let se;
const registration = navigator.serviceWorker.register('/sw.js').then(data => {
se = data.active;
console.log('ready');
});
function sendMessage(message) {
se.postMessage(message);
}
</script>
let interval;
function startListen() {
interval = setInterval(() => {
console.log(Date.now());
}, 1000);
}
function stopListen() {
clearInterval(interval);
}
self.addEventListener('message', ({data}) => {
switch (data) {
case 'start':
startListen();
break;
case 'stop':
stopListen();
break;
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment