JavaScript · Avançado · Inglês · Técnico
Web Worker
Script que roda em uma thread separada do navegador, sem acesso ao DOM, e conversa com a página por mensagens com postMessage. Serve para tirar contas pesadas da thread principal.
Onde usar
Usado para processar imagens, interpretar arquivos grandes ou calcular algo sem travar a interface. Em code review, lembra-se que os dados são copiados na mensagem, salvo os transferíveis, como ArrayBuffer.
Em código
// principal.js
const w = new Worker('calc.js');
w.onmessage = (e) => console.log(e.data);
w.postMessage(21);
// calc.js
onmessage = (e) => postMessage(e.data * 2);Exemplos
I moved the image processing into a Web Worker so the UI stays smooth.
Movi o processamento de imagem para um Web Worker para a interface ficar fluida.
A Web Worker has no access to the DOM.
Um Web Worker não tem acesso ao DOM.
Cuidado
Tentar acessar document ou window dentro do worker, onde não existem.
Sinônimos
worker