SharedWorker

JavaScript 🔴 Senior

Definition

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.

#core#avance#navigateur