[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/es/docs/Web/API/Web_Workers_API [Back]  [Original]

Web Workers API - API web | MDN

Esta pgina ha sido traducida del ingls por la comunidad. Aprende ms y nete a la comunidad de MDN Web Docs.

View in English Always switch to English

Web Workers API

Los Web Workers hacen posible ejecutar la operacin de un script en un hilo en segundo plano separado de la ejecucin el hilo principal de la aplicacin web. La ventaja de esto es que un proceso laborioso puede actuar en un hilo separado, permitiendo al hilo principal (normlamente la UI) ejecutarse sin ser bloqueado o ralentizado.

In this article

Web Workers conceptos y uso

Un worker es un objeto que se crea a travs del constructor ( Worker()) este ejecuta un archivo javascript este fichero contiene los scripts que se van a ejecutan en el hilo del worker; los workers se ejecutan en un contexto global diferente al actual del navegador window. Este contexto est representado por el objeto DedicatedWorkerGlobalScope en el caso de los workers dedicados (los workers standard utilizan un solo script; y los shared workers usan SharedWorkerGlobalScope).

Podemos ejecutar los script que necesitemos dentro del hilo del worker, pero con algunas excepciones. Por ejemplo no se puede manipular directamente el DOM, ni usar algunos mtodos y propiedades por defecto del objeto window. Pero puede usar un gran nmero de elementos que estn dentro de window, incluyendo WebSockets, y data storage formas de almacenamiento como IndexedDB y solo en Firefox OS Data Store API. Mira Funciones y clases disponibles para workers para saber ms.

Los datos se comunican entre los workers y el hilo principal a travs de un sistema de mensajes tanto del hilo principal como del worker para enviar un mensaje se invoca al mtodo postMessage() , y a travs del listener del evento onmessage se pueden escuchar los mensajes (El mensaje est dentro de la propiedad data del evento) . Los datos se copian en lugar de compartirse.

Los workers tambin pueden generar nuevos workers, siempre que los workers estn en la misma pgina que el principal. Adems, los workers pueden usar XMLHttpRequest para la network I/O, con la excepcin de que los atributos responseXML y channel de XMLHttpRequest siempre retornan valor null.

Ademas de los workers dedicados, hay otro tipo de workers:

  • Los Shared workers son workers que pueden ser utilizados por multiples scripts corriendo en diferenes ventanas, IFrames, etc., esto siempre que estn en el mismo dominio que el worker. Son un poco ms complejos que los workers dedicados los scripts deben comunicarse a travs de un puerto activo. Mira SharedWorker para mas detalles.
  • ServiceWorkers esencialmente actuan como servidores proxy que se ubican entre las aplicaciones web, el navegador y la red (cuando estn disponibles). Estn destinados (entre otras cosas) para poder manejar experiencias y comportamientos offline, interceptando peticiones de red y tomando la accin apropiada tomando en cuenta si la conexin est disponible y actualizando los assets desde el servidor. Tambin notificaciones push y sincronizacin desde la API en segundo plano.
  • Chrome Workers es un worker solo de Firefox puedes utilizar si ests desarrollando complementos se puede tener acceso a js-ctypes en el worker. Mira ChromeWorker para mas detalles.
  • Audio Workers nos dan la capacidad de procesar audio directamente dentro del contexto del worker.

Nota: Segn el Web workers Spec, los errores del worker no deberan bubujear (mira Error 1188141 en Firefox. Esto est implementado en Firefox 42.

Web Worker interfaces

AbstractWorker

Abstrae todas las propiedades y mtodos comunes a toda clase de workers (i.e. Worker or SharedWorker).

Worker

Representa el hilo del worker en ejecucin, pudiendo pasar mensajes a este.

WorkerLocation

Define la ruta absoluta del script que ejecuta el Worker.

SharedWorker

Representa un tipo de worker al que se puede acceder desde distintos contextos de navegacin, tanto de varias ventanas, iframes, y otros workers.

WorkerGlobalScope

Representa el mbito genrico de cualquier worker (similar a Window en un contenido web normal). Los diferentes tipos de workers tienen objetos de mbito que heredan de esta interfaz y aade caractersticas ms especficas.

DedicatedWorkerGlobalScope

Representa el mbito de un worker dedicado, hereda de WorkerGlobalScope y aade algunas caractersticas.

SharedWorkerGlobalScope

Representa el mbito de un shared worke, hereda de WorkerGlobalScope y aade algunas caractersticas.

WorkerNavigator

Representa la identidad y estado del user agent (El cliente):

Examples

Hemos creado un par de demostraciones para ver su uso bsico:

You can find out more information on how these demos work in Using web workers.

Especificaciones

Specification
HTML
# workers

See also


Web Proxy Viewer  |  New URL  |  Original Page