我们应该知道,JavaScript
是一门单线程的语言,因此 Main Threa
主线程 的大量计算等操作毫无疑问会造成页面卡顿、性能损耗。
而 Worker
则是浏览器提供的一条独立线程,方便开发者进行自定义操作。
在 Main Thread
与 Worker Thread
之间,是利用了 MessageEvent
事件进行通信。
Web Worker
是一类 worker
的统称。而且这一类 worker
各有特点。
在现实业务中,根据 API
,我们可以将其大致细分为:
Worker
:用于大型计算等消耗性能的操作;SharedWorker
:用于跨Tab
数据共享;ServiceWorker
:用于JavaScript
控制资源缓存,以实现渐进式web
应用。
在使用方式,Worker
和 SharedWorker
很类似,因此我们归为本章节统一论述。
而 ServiceWorker
与前两者大相径庭,涉及到 PWA
以及 Cache
策略等等,因此单独一个章节归纳。
所有 Worker
的学习,都是对 Main Thread
和 Worker Thread
的 API
以及通信机制的归纳。