SharedWorker
JavaScript 🔴 SeniorDefinition
Worker partage entre plusieurs contextes de navigation (onglets, iframes) de la meme origine. Communique via des ports MessagePort. Un seul thread pour tous les onglets.
Analogie
Un serveur de chat partage : tous les onglets du meme site se connectent au meme salon.
Exemple de code
// shared.js
onconnect = (e) => {
const port = e.ports[0];
port.onmessage = (ev) => {
port.postMessage(`Echo: ${ev.data}`);
};
};
// page.js
const sw = new SharedWorker('shared.js');
sw.port.postMessage('hello');
Cas d'usage
Etat partage entre onglets, connexion WebSocket unique, cache multi-onglets.