Chapter 5. Shared Workers

Shared Web Workers allow multiple web application instances to communicate with a single instance of a shared Worker. Shared Web Workers will be identified by the name or the URL that you provide in their constructor. You instantiate them by creating a new SharedWorker.

One way to leverage shared workers in your web application is by using a single shared Worker as a central point of communication with a server. Multiple Workers can be opened and all view the same picture through the shared Worker. Instead of directly communicating with your servers, the web app will communicate with a shared Worker that buffers changes locally and communicates with the server when online.

The shared worker can also use HTML5 offline capabilities[7] to persist the state of the data and communicate it to the server, based on your web application logic. It’s a long-lived task that gives your application the option of persisting data between all open windows and tabs. It also allows your Model (as in the Model-View-Controller design pattern[8]) to be elegantly encapsulated in one central place.

Other good uses for shared Workers include the following:

  • Providing a single source of truth for any type of logic that your app needs in more then one place (e.g., user identification, connection status, etc.).

  • Ensuring data consistency between windows of the same web app.

  • Reducing the memory consumption of multiple web app tabs/windows, by allowing some code (e.g., server communications) ...

Get Web Workers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.