2021 年 Web Worker 的现状

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

你必须赞赏 Surma 的毅力。多年来,他一直倡导将 Web Worker 作为构建更流畅网站的途径 多年来。他 再次 确保我们都了解其现状

[…] 无论你往哪里看,多线程都已无处不在。iOS 使开发人员能够轻松地使用 Grand Central Dispatch 并行化代码,Android 通过其新的统一任务调度程序 WorkManager 执行此操作,而像 Unity 这样的游戏引擎则具有 作业系统。所有这些平台不仅支持多线程,而且使其尽可能易于使用的原因始终相同:确保您的应用程序感觉很棒。

Surma“2021 年 Web Worker 的现状”

因此,几乎每个平台都有自己的多线程版本,包括 Web。只是在 Web 上,我们必须通过使用 Web Worker(如果您想知道,它们是“普遍支持的”)来“对抗”JavaScript 的单线程特性。问题是:如何以及为了什么使用它们?对于后者,Surma 展示了一个游戏的示例,其中“整个应用程序状态和游戏逻辑都在一个 worker 中运行”。对于前者,辅助库 comlink 看起来大大减少了工作量。

就我个人而言,我希望流行的工具能够自动执行这些操作。我不知道这到底是什么样子,但感觉开发人员推广并没有真正推动这方面的发展。如果像 Apollo 这样的流行工具(它负责大量“应用程序状态”)能够神奇地处理主线程之外的所有这些操作会怎样?这有道理吗?这可能吗?