Movatterモバイル変換


[0]ホーム

URL:


  1. Tecnología web para desarrolladores
  2. API web
  3. Web Workers API

Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.

View in EnglishAlways switch to English

Web Workers API

Los Web Workers hacen posible ejecutar la operación de un script en un hilo en segundo plano separado de la ejecución el hilo principal de la aplicación 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.

Web Workers conceptos y uso

Un worker es un objeto que se crea a través 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 navegadorwindow. Este contexto está representado por el objetoDedicatedWorkerGlobalScope en el caso de los workers dedicados (los workers standard utilizan un solo script; y los shared workers usanSharedWorkerGlobalScope).

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 métodos y propiedades por defecto del objetowindow. Pero puede usar un gran número de elementos que están dentro dewindow, incluyendoWebSockets, y data storage formas de almacenamiento comoIndexedDB y solo en Firefox OSData Store API. MiraFunciones y clases disponibles para workers para saber más.

Los datos se comunican entre los workers y el hilo principal a través de un sistema de mensajes — tanto del hilo principal como del worker para enviar un mensaje se invoca al métodopostMessage() , y a través del listener del eventoonmessage se pueden escuchar los mensajes (El mensaje está dentro de la propiedaddata del evento) . Los datos se copian en lugar de compartirse.

Los workers también pueden generar nuevos workers, siempre que los workers estén en la misma página que el principal. Además, los workers pueden usarXMLHttpRequest para la network I/O, con la excepción de que los atributosresponseXML ychannel deXMLHttpRequest siempre retornan valornull.

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 estén en el mismo dominio que el worker. Son un poco más complejos que los workers dedicados— los scripts deben comunicarse a través de un puerto activo. MiraSharedWorker para mas detalles.
  • ServiceWorkers esencialmente actuan como servidores proxy que se ubican entre las aplicaciones web, el navegador y la red (cuando están disponibles). Están destinados (entre otras cosas) para poder manejar experiencias y comportamientos offline, interceptando peticiones de red y tomando la acción apropiada tomando en cuenta si la conexión está disponible y actualizando los assets desde el servidor. También notificaciones push y sincronización desde la API en segundo plano.
  • Chrome Workers es un worker solo de Firefox puedes utilizar si estás desarrollando complementos se puede tener acceso ajs-ctypes en el worker. MiraChromeWorker para mas detalles.
  • Audio Workers nos dan la capacidad de procesar audio directamente dentro del contexto del worker.

Nota:Según elWeb workers Spec, los errores del worker no deberían bubujear (miraError 1188141 en Firefox. Esto está implementado en Firefox 42.

Web Worker interfaces

AbstractWorker

Abstrae todas las propiedades y métodos comunes a toda clase de workers (i.e.Worker orSharedWorker).

Worker

Representa el hilo del worker en ejecución, pudiendo pasar mensajes a este.

WorkerLocation

Define la ruta absoluta del script que ejecuta elWorker.

SharedWorker

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

WorkerGlobalScope

Representa el ámbito genérico de cualquier worker (similar aWindow en un contenido web normal). Los diferentes tipos de workers tienen objetos de ámbito que heredan de esta interfaz y añade características más específicas.

DedicatedWorkerGlobalScope

Representa el ámbito de un worker dedicado, hereda deWorkerGlobalScope y añade algunas características.

SharedWorkerGlobalScope

Representa el ámbito de un shared worke, hereda deWorkerGlobalScope y añade algunas características.

WorkerNavigator

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

Examples

Hemos creado un par de demostraciones para ver su uso básico:

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

Especificaciones

Specification
HTML
# workers

See also

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp