SharedWorker
JavaScript 🔴 SeniorDéfinition
Worker partage entre plusieurs contextes de navigation (onglets, iframes) de la même origine. Communique via des ports MessagePort. Un seul thread pour tous les onglets.
Analogie
Un serveur de chat partage : tous les onglets du même site se connectent au même 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
État partage entre onglets, connexion WebSocket unique, cache multi-onglets.