trabajadores web le permite ejecutar cálculos intensivos de CPU en un subproceso en segundo plano, liberando el subproceso principal para actualizar la interfaz de usuario. Si encuentra que su aplicación realiza muchos cálculos, como generar dibujos CAD o realizar cálculos geométricos pesados, el uso de trabajadores web puede ayudar a aumentar el rendimiento de su aplicación.

La CLI no admite la ejecución de Angular en un trabajador web.

Agregar un trabajador web

Para agregar un trabajador web a un proyecto existente, use la CLI de Angular ng generate dominio.

ng generate web-worker <location>

Puede agregar un trabajador web en cualquier lugar de su aplicación. Por ejemplo, para agregar un trabajador web al componente raíz, src/app/app.component.tsejecute el siguiente comando.

ng generate web-worker app

El comando realiza las siguientes acciones.

  • Configura su proyecto para usar trabajadores web, si aún no lo está.

  • Agrega el siguiente código de andamio a src/app/app.worker.ts para recibir mensajes.

    addEventListener('message',( data )=>const response =`worker response to $data`;postMessage(response););
  • Agrega el siguiente código de andamio a src/app/app.component.ts utilizar al trabajador.

    if(typeof Worker !=='undefined')// Create a newconst worker =newWorker('./app.worker', type:'module');
      worker.onmessage=( data )=>console.log(`page got message: $data`);;
      worker.postMessage('hello');else// Web workers are not supported in this environment.// You should add a fallback so that your program still executes correctly.

Después de generar este andamio inicial, debe refactorizar su código para usar el trabajador web mediante el envío de mensajes hacia y desde el trabajador.

Algunos entornos o plataformas, como @angular/platform-server utilizado en la representación del lado del servidor, no es compatible con los trabajadores web. Para asegurarse de que su aplicación funcione en estos entornos, debe proporcionar un mecanismo de respaldo para realizar los cálculos que, de otro modo, realizaría el trabajador.