Worklet
Baseline 广泛可用 *
Worklet 接口是 Web Workers 的一个轻量级版本,它为开发者提供了访问渲染管线底层部分的能力。
通过 Worklets,您可以运行 JavaScript 和 WebAssembly 代码,在需要高性能的场景下进行图形渲染或音频处理。
Worklets 允许静态导入 ECMAScript 模块(如果支持),使用 import。根据规范,动态导入是不允许的——调用 import() 会抛出错误。
Worklet 类型
Worklets 被限制在特定的用例;它们不能像 Web Workers 那样用于任意计算。Worklet 接口抽象了所有类型 worklets 共有的属性和方法,且不能直接创建。您可以使用以下类之一:
| 名称 | 描述 | Location | 规范 |
|---|---|---|---|
AudioWorklet |
用于通过自定义 AudioNodes 进行音频处理。 | Web Audio 渲染线程 | Web Audio API |
AnimationWorklet |
用于创建与滚动关联以及其他高性能过程式动画。 | 合成器线程 | CSS Animation Worklet API |
LayoutWorklet |
用于定义自定义元素的定位和尺寸。 | CSS Layout API | |
SharedStorageWorklet |
用于在跨站点数据上运行私有操作,而不会有数据泄露的风险。 | 主线程 | 共享存储 API |
注意: 由 CSS Painting API 定义的 Paint worklets 不继承自 Worklet。它们通过使用 CSS.paintWorklet 获取的普通 Worklet 对象来访问。
对于使用 WebGL 进行 3D 渲染,您不需要使用 worklets。相反,您需要使用 GLSL 代码编写顶点着色器和片段着色器,然后这些着色器将在显卡上运行。
实例属性
Worklet 接口不定义任何属性。
实例方法
Worklet.addModule()-
将给定 URL 的脚本模块添加到当前 worklet。
规范
| 规范 |
|---|
| HTML # worklets-worklet |
浏览器兼容性
加载中…
另见
- Houdini:揭秘 CSS - Google Developers (2016)
- AudioWorklet :: 是什么、为什么、以及如何做 - YouTube (2017)
- 进入 AudioWorklet - Google Developers (2017)
- Animation Worklet - HTTP203 Advent - YouTube (2017)