ExpertiDict

JavaScript · Avançado · Inglês · Técnico

Web Worker

/wɛb ˈwɝkɚ/substantivo

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

Veja também

Todos os termos de JavaScript