Skip to content

Instantly share code, notes, and snippets.

@beatrizsmerino
Last active February 10, 2020 15:26
Show Gist options
  • Save beatrizsmerino/759afc48ac7cf8c8607819bc569133a8 to your computer and use it in GitHub Desktop.
Save beatrizsmerino/759afc48ac7cf8c8607819bc569133a8 to your computer and use it in GitHub Desktop.
Service worker
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Mi primer Service worker</title>
</head>
<body>
<h1>
Mi primer Service worker
</h1>
<script id="worker" type="javascript/worker">
((s => {
const increment = 1;
let count = 0;
const loop = 999999999;
s.onmessage = e => {
console.log(e.data);
let test = 0;
for( let i = 0 ; i < loop ;i++ ){
test = i;
const int = Math.trunc( i*100/loop );
if( int === count ){
s.postMessage( int );
count += increment;
}
}
s.postMessage( {finish:'loop finished'} );
};
}))(self);
</script>
<script src="js/script.js"></script>
</body>
</html>
// WORKER 1
const worker1 = new Worker('./js/service-worker.js');
worker1.addEventListener('message', evento => {
console.log('El worker 1 dice: ', evento.data);
// worker.terminate()
}, false);
worker1.postMessage('Hola Mundo!\n');
// WORKER 2
const blob = new Blob(
[document.querySelector("#worker").textContent],
{ type: "text/javascript" }
);
const worker2 = new Worker(window.URL.createObjectURL(blob));
worker2.addEventListener('message', evento => {
console.log('El worker 2 dice: ', evento.data);
// worker.terminate()
}, false);
worker2.postMessage('Hola Mundo!\n');
self.addEventListener('message', evento => {
self.postMessage(evento.data + "Hola desde el Web worker");
// self.close();
}, false);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment