Using Web Workers with Angular CLI

Using Web Workers with Angular CLI

In this post, you'll learn how to use the Angular CLI to easily add Web Worker to your Angular apps

In this post, you'll learn how to use the Angular CLI to easily add Web Worker to your Angular apps

Web Workers allow you to run CPU intensive computations in a background thread, freeing the main thread to update the user interface.

If you find your application becomes unresponsive while processing data, using Web Workers can help.

Adding a Web Worker

You can add a web worker anywhere in your application. If the file that contains your expensive computation is src/app/app.component.ts, you can add a Web Worker using ng generate web-worker app.

Running this command will:

  • configure your project to use Web Workers, if it isn't already.
  • add src/app/app.worker.ts with scaffolded code to receive messages:
addEventListener('message', ({ data }) => {

  const response = `worker response to ${data}`;

  postMessage(response);

});

add scaffolded code to src/app/app.component.ts to use the worker:

if (typeof Worker !== 'undefined') {

  // Create a new

  const worker = new Worker('./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.

}

After the initial scaffolding, you will need to refactor your code to use the Web Worker by sending messages to and from.

Caveats

There are two important things to keep in mind when using Web Workers in Angular projects:

  • Some environments or platforms, like @angular/platform-server used in Server-side Rendering, don't support Web Workers. You have to provide a fallback mechanism to perform the computations that the worker would perform to ensure your application will work in these environments.
  • Running Angular itself in a Web Worker via @angular/platform-webworker is not yet supported in Angular CLI.

Angular 9 Tutorial: Learn to Build a CRUD Angular App Quickly

What's new in Bootstrap 5 and when Bootstrap 5 release date?

Brave, Chrome, Firefox, Opera or Edge: Which is Better and Faster?

How to Build Progressive Web Apps (PWA) using Angular 9

What is new features in Javascript ES2020 ECMAScript 2020

For World Class Web Development Services in India visit RB Genie

Do you want excellent and world class web development services for your valuable projects? Contact **RB Genie **now, we have more than 8 years experienced team of web developers, which specializes in overall web design and website development...

Web Development Services

As one of the best Web Application Development Company, it provides a fine quality mobile app development service at an affordable price. Especially, it encourage start-ups that have unique ideas, by offering a more competitive price

Various Services Like Web Development & Product Development by RB Genie

RB Genie is one of best service provider company in various fields like web development, software development, product development like Branding & Promotion, Marketing, Quality & Security, mobile app development (Android & IPhone), staffing...