在今年的JSConf大会上,最大的新闻是引入WorkerDOM,这是一个 JavaScript 库,使 Web Workers 可以使用 DOM,从而使开发人员可以利用多核处理器体系结构来提高 Web 性能。
Web Workers已经存在多年,但是,不能访问 DOM 限制了它们的应用。WorkerDOM 项目希望帮助恢复人们对 Web 多线程编程的兴趣,为用户创造更好的体验。
利用替代方法来提升用户体验的需求是一个日益流行的话题。在今年的 FullStack 大会上,软件工程师 James Milner 介绍了利用Web Workers改进用户体验的技术,即将处理工作交给 Web Workers 以提升应用程序主线程的性能。
WorkerDOM 的另一个目标是使 Web 性能堪比本地平台,其方式是通过尽可能地释放性能来提供更好的体验,特别是在移动设备上,单个处理器的速度没有像处理器核数提高得那么快。
为了在 Web Workers 内部实现 DOM 的完整表示,WorkerDOM 提供了一种用 TypeScript 编写的高效传输机制。谷歌 AMP 项目技术负责人 Malte Ubl 在 WorkerDOM 的公告中是这样说的:
WorkerDOM 对服务器渲染的 DOM 进行“注水( hydrate)”,然后在应用程序对页面进行更改时进行代理“修改(mutation)”,例如对用户操作做出响应或运行动画。
WorkerDOM 可以通过 npm 或 yarn 安装:
或者,对于提供本地模块支持的浏览器(除 IE11 和 Samsung Internet 之外一切现代化的东西),它也可以作为一个 ES 模块包含进来:
WorkerDOM README 中提供了详细的使用说明。JSConf 演讲“WorkerDOM:JavaScript 并发和 DOM”的完整幻灯片也已提供。
WorkerDOM 目前尚处于 Alpha 状态,请准备好进行实验和贡献。WorkerDOM 的目标还包括提供与 JavaScript 框架的兼容性,最初会支持 React、Preact 和 Svelte。该项目重视与框架及工具作者的合作,力图为开发人员和用户提供最佳的体验。
WorkerDOM 遵循 Apache 2 开源许可协议。欢迎通过WorkerDOM GitHub项目提交贡献,并请遵循 WorkerDOM 项目的贡献指南和代码规范。
查看英文原文:WorkerDOM Adds DOM Concurrency for JavaScript Programming
评论 12 条评论