Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
Worker
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julho de 2015.
* Some parts of this feature may have varying levels of support.
A interfaceWorker daAPI do Web Worker representa uma tarefa em background (segundo plano) que pode ser facilmente criada e emitir mensagens de volta ao seu criador. Criar um worker é possível chamando o construtorWorker("path/to/worker/script") e especificando um script para ser executado em sua própria thread.
Um worker pode, por sua vez, gerar outros workers, contanto que estes estejam hospedados na mesmaorigem da página principal (Nota: workers aninhadosnão estão atualmente implementados no Blink). Além disso, workers podem utilizarXMLHttpRequest para E/S de rede, desde que seja estipulado que os atributosresponseXML echannel emXMLHttpRequest retornem semprenull.
Não são todas as interfaces e funções que estão disponíveis para o script associado a umWorker.
Nota:No Firefox, se você deseja utilizar workers em extensões e gostaria de ter acesso ajs-ctypes, você deveria utilizar o objetoChromeWorker .
In this article
Construtores
Propriedades
Herda as propriedades do pai,EventTarget, e implementa as propriedades que compõem oAbstractWorker.
Manipuladores de Eventos
AbstractWorker.onerrorUm
EventListeneré chamado sempre quando umErrorEventdo tipoerroré passado através do worker. Este é herdado peloAbstractWorker.Worker.onmessageUm
EventListeneré chamado sempre quando umMessageEventdo tipomessageé passado através do worker — ou seja, quando uma mensagem é enviada para o documento pai do worker viaDedicatedWorkerGlobalScope.postMessage. A mensagem é armazenada na propriedade de dados do eventodata.
Métodos
Os métodos são herdados de seu pai.EventTarget, e implementa os métodos deAbstractWorker.
Worker.postMessage()Envia uma mensagem — qual pode consistir de qualquer objeto do JavaScript — para o escopo interno do worker.
Worker.terminate()Imediatamente encerra o worker. Isso não oferece ao worker a oportunidade de concluir suas operações; imediatamente o interrompe.
ServiceWorkernão suportam esse método.
Eventos
messageO evento é disparado quando o script pai do worker recebe uma mensagem do mesmo.Também é disponibilizado via
onmessage.messageerrorDispara quando um Worker recebe uma mensagem que não pode serdeserializadaTambém é disponibilizado via
onmessageerror.rejectionhandledDispara sempre que um
Promiseé rejeitado, indenpendentemente de haver ou não um manipulador para capturar sua rejeição.Também é disponibilizado viaonrejectionhandled.unhandledrejectionDispara sempre que um
Promiserejeita, independentemente de haver ou não um manipulador para capturar a rejeição. Também disponível por meio da propriedade do manipulador de eventosonunhandledrejection.
Exemplos
The following code snippet shows creation of aWorker object using theWorker() constructor and usage of the object:
var myWorker = new Worker("worker.js");var first = document.querySelector("#number1");var second = document.querySelector("input#number2");first.onchange = function () { myWorker.postMessage([first.value, second.value]); console.log("Message posted to worker");};For a full example, see ourBasic dedicated worker example (run dedicated worker).
Especificações
| Specification |
|---|
| HTML> # dedicated-workers-and-the-worker-interface> |
Compatibilidade com navegadores
See also
- Using web workers
- Functions available to workers
- Other kind of workers:
SharedWorkerandServiceWorker. - Non-standard, Gecko-specific workers:
ChromeWorker, used by extensions.