我们很高兴地宣布 WorkerDOM 的 alpha 版本发布WorkerDOM——一个 JavaScript 库,它使文档对象模型 (DOM) 可用于Web Workers。这允许 Web 开发人员在对他们的网页进行编程时利用普遍的多核处理器架构,从而使它们具有更高的性能。虽然 WorkerDOM 库是为一般的 Web 编程设计的,但我们也计划在 AMP 项目中使用它,我们将在下面详细介绍。
底层的 Web Worker API 已经向 Web 开发人员开放了将近十年,但它并没有被广泛采用。原因之一是用于操作网页的主要 API,即 DOM,在工作线程中不可用。WorkerDOM改变了这一点,从而使开发人员能够更轻松地移植其现有应用程序。我们希望这会激发人们对 Web 上多线程编程的兴趣,并为用户带来更好的体验。
我们的研究表明,低成本设备的单核 CPU 性能在过去几年中没有显著提高。因此,从单核的角度来看,移动设备变得更便宜了,但速度并没有提高。充分利用即使是最便宜的 CPU 也能提供的额外内核是一个重大机遇,而默认情况下 JavaScript 编程无法利用这些内核。为了使 Web 性能真正与原生平台的性能相媲美,我们应该尝试释放这部分额外的性能,以便在人们使用的所有设备范围内提供更好、更现代化的体验。

WorkerDOM 旨在在 Web Workers 中提供 DOM 的完整表示。在理想情况下,这意味着脚本可以在 worker 环境中保持不变。该库的核心是一个用 TypeScript 编写的有效传输机制。它会对服务器渲染的 DOM 进行水化,然后代理应用程序对页面进行的更改,例如对用户操作做出反应或运行动画。有关 WorkerDOM 库的内部工作原理和可能的用例的更多详细信息,请查看我们 在 JSConf US 2018 上的演示幻灯片。
正如在 AMP Conf 2018 上宣布的,AMP 项目正在努力让 AMP 页面作者可以使用 JavaScript 编程。 WorkerDOM 库是这一举措的核心,我们很高兴在今年晚些时候将其纳入 AMP。WorkerDOM 与 React、Preact 和 Svelte 等框架兼容,并且路线图中还有更多框架。我们非常高兴看到所有这些框架在未来用于创建 AMP 页面!
今天的版本是 alpha 版本。 WorkerDOM 已准备好进行试验,但尚未准备好广泛用于生产。我们希望与框架和工具作者合作,以确保兼容性,并在尽可能多的地点和上下文中使用 WorkerDOM 时提供出色的开发者体验!
Kristofer Baxter,Google 软件工程师