Shota Papiashvili
Jun 5 2017
each instance of our page (tab) will have its own web worker
one worker will serve all of our tabs, each tab can publish a message to the worker
var worker = new Worker('worker.js');
worker.addEventListener('message', function(e) {
console.log('Worker said: ', e.data);
}, false);
worker.postMessage('Yo');
self.addEventListener('message', function(e) {
console.log(e.data);
}, false);
app
worker
var worker = new SharedWorker("worker.js");
worker.port.addEventListener("message", function(e) {
console.log('Worker said: ', e.data);
}, false);
worker.port.start();
worker.port.postMessage("Yo");
self.addEventListener("connect", function (e) {
var port = e.ports[0];
port.addEventListener("message", function (e) {
port.postMessage("Hello " + e.data + ")");
}, false);
port.start();
}, false);
app
worker
The use case that I will demo is a web site that users attend to open multiple tabs of (like online mailbox)
The objective is to cache the users data and share it among all of the tabs
All the code is at: https://github.com/shotap/webworkers-demo
Shota Papiashvili
Jun 5 2017