--- title: Worker slug: Web/API/Worker translation_of: Web/API/Worker ---
{{APIRef("Web Workers API")}}
A interface do Worker
da API de Workers da Web representa uma tarefa em segundo palno que pode ser criada facilmente e pode enviar mensagens de volta para o seu criador. Criar um worker é tão simples como chamar o criador de Worker()
e especificar um script para ser executado na sequência do worker.
Os workers podem, por sua vez, gerar novos workers enquanto esses workers estiverem alojados dentro da mesma origem como a página original (Nota: os workers integrados não estão atualmente implementados no Blink). Em adição os workers poderão utilizar XMLHttpRequest
para I/O rede, com a estipulação que a responseXML
e os atributos channel
no XMLHttpRequest
retornam sempre null
.
Nem todas as interfaces e funções estão disposníveis para o script associado com um Worker
.
No Firefox, se quiser utilziar os workers nas extensões e pretender ter acesso a js-ctypes, então deverá utilizar o objeto {{ domxref("ChromeWorker") }}.
Inherits properties from its parent, {{domxref("EventTarget")}}, and implements properties from {{domxref("AbstractWorker")}}.
error
bubbles through to the worker. This is inherited from {{domxref("AbstractWorker")}}.message
bubbles through the worker — i.e. when a message is sent to the parent document from the worker via {{domxref("DedicatedWorkerGlobalScope.postMessage")}}. The message is stored in the event's {{domxref("MessageEvent.data", "data")}} property.Inherits methods from its parent, {{domxref("EventTarget")}}, and implements methods from {{domxref("AbstractWorker")}}.
any
JavaScript object — to the worker's inner scope.The following code snippet shows creation of a {{domxref("Worker")}} object using the {{domxref("Worker.Worker", "Worker()")}} constructor and usage of the object:
var myWorker = new Worker('worker.js'); var first = document.querySelector('#number1'); var second = document.querySelector('#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ção | Estado | Comentário |
---|---|---|
{{SpecName('HTML WHATWG', "#worker", "Worker")}} | {{Spec2('HTML WHATWG')}} |
Support varies for different types of workers. See each worker type's page for specifics.
Funcionalidade | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Basic support | 4 | {{CompatVersionUnknown}} | 3.5 | 10.0 | 10.6 | 4 |
Constructor name option |
{{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoDesktop(55)}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
onmessageerror |
60 | {{CompatUnknown}} | {{CompatGeckoDesktop(57)}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatUnknown}} |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile | Chrome for Android |
---|---|---|---|---|---|---|---|
Basic support | 4.4 | {{CompatVersionUnknown}} | 3.5 | 10.0 | 11.5 | 5.1 | {{CompatUnknown}} |
Constructor name option |
{{CompatUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile(55)}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} |
onmessageerror |
60 | {{CompatUnknown}} | {{CompatGeckoMobile(57)}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
In earlier browser versions, trying to load a cross-origin worker script threw a SecurityError
; in newer browsers an {{event("error")}} event is thrown instead due to a spec change. Find out more information on how to deal with this in Loading cross-origin worker now fires error event instead of throwing; worker in sandboxed iframe no longer allowed.
|
|
|
|
|
|
|
Opções : Histórico : Comentários : Donate | Encerrar |