Web Workers

JavaScript 🟡 Mid

Definition

API permettant d'executer du JS dans un thread separe du thread principal. Communiquent via postMessage/onmessage. N'ont pas acces au DOM.

Analogie

Un assistant dans un bureau separe : tu lui envoies du travail par pneumatique (postMessage), il te renvoie le resultat.

Exemple de code

// main.js
const worker = new Worker('worker.js');
worker.postMessage({ data: bigArray });
worker.onmessage = (e) => console.log(e.data);
// worker.js
onmessage = (e) => {
  const result = heavyCompute(e.data);
  postMessage(result);
};

Cas d'usage

Calculs lourds (crypto, parsing), traitement d'images, operations qui bloqueraient le thread UI.

Anti-pattern

Creer un worker pour chaque petite operation : le cout de creation et de communication depasse le gain.
#core#performance#navigateur