Web Workers are desinged to bring multithreading to JavaScript.
They are isolated
threads that can concurrently perform work.
- Background Tasks
- Parallelism
- Synchronization
- Maximize the potential of available hardware
- Isolation and segregation of responsibilities
As with any other language feature that uses threads or processes there are limitations.
Most of the limitations come from UI elements.
- DOM
- Window
- Parent
- Document
There are two types of Web Workers specifically designed for different tasks.
- Dedicated Workers
- Shared Workers
- Background work
- IPC
- Dynamic External Script Loading
- SubWorkers
- Blob Manipulation
- Inline Workers using Blobs