Worker

Esta tradução está incompleta. Ajude a traduzir este artigo em inglês

A interface Worker da API do Web Worker representa uma tarefa em background (segundo plano) que pode ser facilmente criada e emitr mensagens de volta ao seu criador. Criar um worker é possível chamando o construtor Worker("path/to/worker/script") e especificando um script para ser executado em sua pŕopria thread.

Um worker pode, por sua vez, gerar outros workers, contanto que estes estejam hospedados na mesma origem da página principal (Nota: workers aninhados não estão atualmente implementados no Blink). Além disso, workers podem utilizar XMLHttpRequest para E/S de rede, desde que seja estipulado que os atributos responseXML e channel em XMLHttpRequest retornem sempre null.

Não são todas as interfaces e funções que estão disponíveis para o script associado a um Worker.

No Firefox, se você deseja utilizar workers em extensões e gostaria de ter acesso a js-ctypes, você deveria utilizar o objeto ChromeWorker .

Construtores

Worker()
Cria um worker dedicado da web que executa o script especificado na URL. Workers também podem ser construídos usando Blobs.

Propriedades

Herda as propriedades do pai, EventTarget, e implementa as propriedades que compõem o AbstractWorker.

Manipuladores de Eventos

AbstractWorker.onerror
Um EventListener é chamado sempre quando um ErrorEvent do tipo error é passado através do worker. Este é herdado pelo AbstractWorker.
Worker.onmessage
Um EventListener é chamado sempre quando um MessageEvent do tipo message é passado através do worker — ou seja, quando uma mensagem é enviada para o documento pai do worker via DedicatedWorkerGlobalScope.postMessage. A mensagem é armazenada na propriedade de dados do evento data.

Methods

Inherits methods from its parent, EventTarget, and implements properties from AbstractWorker.

Worker.postMessage()
Sends a message — which can consist of any JavaScript object — to the worker's inner scope.
Worker.terminate()
Immediately terminates the worker. This does not offer the worker an opportunity to finish its operations; it is simply stopped at once. ServiceWorker instances do not support this method.

Example

The following code snippet shows creation of a Worker object using the Worker() 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).

Specifications

Specification Status Comment
HTML Living Standard
The definition of 'Worker' in that specification.
Padrão em tempo real No change from Unknown.
Unknown
The definition of 'Worker' in that specification.
Desconhecido Initial definition.

Browser compatibility

Support varies for different types of workers. See each worker type's page for specifics.

Estamos convertendo nossos dados de compatibilidade para o formato JSON. Esta tabela de compatibilidade ainda usa o formato antigo, pois ainda não convertemos os dados que ela contém. Descubra como você pode ajudar!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 4 3.5 10.0 10.6 4
Feature Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile Chrome for Android
Basic support 4.4 3.5 1.0.1 10.0 11.5 5.1 ?

See also