Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnologia Web para desenvolvedores
  2. APIs da Web
  3. Web Workers API

Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.

View in EnglishAlways switch to English

Web Workers API

Web Workers são mecanismos que permitem que uma operação de um dado script seja executado em uma thread diferente da thread principal da aplicação Web. Permitindo que cálculos laboriosos sejam processados sem que ocorra bloqueio da thread principal (geralmente associado à interface).

Web Workers: conceitos e uso

Um "worker" é um objeto criado através da utilização do construtor (exWorker()) que executa um dado arquivo Javascript — o código contido em tal arquivo é executado no thread do worker; e tais workers são executados em um contexto diferente do principalwindow. O contexto dos workers é representado pelo objetoDedicatedWorkerGlobalScope no caso de workers dedicados (workers padrões são utilizados por um único script; workers compartilhados utilizamSharedWorkerGlobalScope).

O thread do worker roda qualquer trecho de código, mas é importante ressaltar que esse trecho não poderá manipular o DOM, ou usar alguns métodos e propriedades do objetowindow. Mas, é permitido usar um grande número de itens fornecidos pelo objeto window, incluindoWebSockets, mecanismos de data storage tais comoIndexedDB, Firefox OS-onlyData Store API. Para mais detalhes vejaFunções e classes disponíveis para os workers.

O thread principal e os threads dos workers comunicam-se entre si enviando dados através do sistema de mensagens — ambos os lados enviam mensagens usando o métodopostMessage(), e respondem as mensagens via o manipulador de eventosonmessage (a mensagem está contida no atributodata do eventoMessage). É importante ressaltar que os dados são copiados, e não compartilhados.

Workers podem, por sua vez, gerar novos workers, desde que esses workers sejam hospedados na mesma origem que a página principal. Além disso, workers podem usarXMLHttpRequest para network I/O, com a exceção de que os atributosresponseXML echannel doXMLHttpRequest sempre retornam nulo.

Além dos workers dedicados, existem outros tipos de workers:

  • Shared Workers são workers que podem ser utilizados por diversos scripts que estão sendo executados em diferentes janelas, IFrames, etc., desde que eles estejam no mesmo domínio. Eles são ligeiramente mais complexos que workers dedicados — os scripts se comunicam através de uma porta ativa. VejaSharedWorker para mais detalhes.
  • ServiceWorkers essencialmente atuam como servidores proxy enquadram entre aplicativos da web e o navegador e a rede (quando disponível). Eles destinam-se (entre outras coisas) a habilitar a criação de experiências off-line efetivas, interceptando solicitações de rede e tomando as ações adequadas com base na disponibilidade da rede e atualização de ativos no servidor. Eles também permitirão o acesso a notificações push e APIs de sincronização em background.
  • Chrome Workers são um Firefox-only tipo de worker que você pode usar caso esteja desenvolvendo um add-ons e quer usar workers em extensão e ter acesso ajs-ctypes na sua worker. VejaChromeWorker para mais detalhes.
  • Audio Workers fornecem a capacidade de processamento de áudio direcionado direto para ser feito dentro do contexto de um web worker.

Interfaces Web Worker

AbstractWorker

Propriedades Abstratas e métodos comuns a todos tipos de workers (i.e.Worker ouSharedWorker).

Worker

Representa a worker thread em execução, permitindo que você passe mensagens para o código em execução.

SharedWorker

Representa um tipo específico de worker que pode seracessado a partir de vários contextos de navegação, sendo várias janelas, iframes ou mesmo workers.

WorkerGlobalScope

Representa o escopo genérico de qualquer worker (fazendo o mesmo trabalho comoWindow para conteúdo normal da web). Diferentes tipos de workers têm objetos de escopo que herdam desta interface e adicionam recursos mais específicos.

DedicatedWorkerGlobalScope

Representa o escopo de um dedicated worker, herdado deWorkerGlobalScope e adicionam recursos mais específicos.

SharedWorkerGlobalScope

Representa o escopo de um shared worker, herdado deWorkerGlobalScope e adicionam recursos mais específicos.

WorkerNavigator

Representa a identidade e estado do user agent (o cliente):

Exemplos

Criamos algumas demonstrações simples para mostrar o uso básico:

Você pode descobrir mais informações sobre como essas demonstrações funcionam emUsando web workers.

Especificações

Specification
HTML
# workers

Compatibilidade com navegadores

Veja também

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp