我们应该知道,JavaScript 是一门单线程的语言,因此**Main Threa主线程**的大量计算等操作毫无疑问会造成页面卡顿、性能损耗。

Worker 则是浏览器提供的一条独立线程,方便开发者进行自定义操作。

Main ThreadWorker Thread 之间,是利用了 MessageEvent 事件进行通信

Web Worker 是一类 worker 的统称。而且这一类 worker 各有特点

在现实业务中,根据 API,我们可以将其大致细分为:

  • Worker:用于大型计算等消耗性能的操作;

  • SharedWorker:用于跨 Tab 数据共享;

  • SeriveWorker:用于 JavaScript 控制资源缓存,以实现渐进式 web 应用。

在使用方式,WorkerSharedWorker 很类似,因此我们归为本章节统一论述。

SeriveWorker 与前两者大相径庭,涉及到 PWA 以及 Cache 策略等等,因此单独一个章节归纳。

所有 Worker 的学习,都是对 Main ThreadWorker ThreadAPI 以及通信机制的归纳

Last Updated: 11/18/2023, 7:56:05 PM