SharedWorker

JavaScript 🔴 Senior

Dé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.

#core#avance#navigateur

← → au clavier pour passer d'une fiche à l'autre