Created
September 7, 2021 17:20
-
-
Save dotproto/c2928916b31fe973555d9432dc8a5c0c to your computer and use it in GitHub Desktop.
Test: Spawn a WebWorker inside a service worker. This test was created to verify whether or not standard web workers can be instantiated from within a service worker.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="en"> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> | |
<meta name="viewport" content="width=device-width"> | |
<title>Web Workers basic example</title> | |
</head> | |
<body> | |
<script src="main.js"></script> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
if ('serviceWorker' in navigator) { | |
navigator.serviceWorker.register('sw.js'); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Adapted from https://mdn.github.io/simple-web-worker/ | |
try { | |
console.log('Spawning a worker'); | |
const myWorker = new Worker('worker.js'); | |
console.log('Sending data to worker:', [2, 3]); | |
myWorker.postMessage(data); | |
myWorker.onmessage = function(e) { | |
console.log('Message received from worker:', e.data); | |
} | |
} catch (e) { | |
console.error(e); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://mdn.github.io/simple-web-worker/ | |
onmessage = function(e) { | |
console.log('Worker: Message received from main script'); | |
const result = e.data[0] * e.data[1]; | |
if (isNaN(result)) { | |
postMessage('Please write two numbers'); | |
} else { | |
const workerResult = 'Result: ' + result; | |
console.log('Worker: Posting message back to main script'); | |
postMessage(workerResult); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment