Web Workers
window
, not all web APIs are availableself
to access worker scopelet worker = new Worker("worker.js") //file run on worker thread
worker.addEventListener("message", ({data}) => {
log(data)
worker.terminate()
})
worker.postMessage('hello worker')
//worker.js
addEventListener("message", () => { postMessage("Hello")})
Shared Workers
Worker
can only be accessed from script that created it, a SharedWorker
can be accessed by any script that comes from the same domain (different windows, iframes, workers.)port
object to communicateconst worker = new SharedWorker("worker.js");
worker.port.start()
worker.port.postMessage({ x : 3, y : 2});
//worker.js
addEventListener("connect", (e) => {
const port = e.ports[0];
port.start()
port.onmessage = (e) => console.log(e.data)
})
Service Workers