Worklet
Worklet
接口是 Web Workers 的轻量级版本,它让开发者可以访问渲染管道的底层部分。
使用 Worklets,您可以运行 JavaScript 和 WebAssembly 代码来执行图形渲染或音频处理,这些操作需要高性能。
如果支持,Worklets 允许使用 import
静态导入 ECMAScript 模块。规范不允许动态导入 - 调用 import()
将会抛出异常。
Worklet 类型
Worklets 受限于特定的用例;它们不能像 Web Workers 一样用于任意计算。Worklet
接口抽象了所有类型的 worklets 共有的属性和方法,并且不能直接创建。您可以使用以下类之一:
名称 | 描述 | 位置 | 规范 |
---|---|---|---|
AudioWorklet |
用于使用自定义 AudioNode 进行音频处理。 | Web Audio 渲染线程 | Web Audio API |
AnimationWorklet |
用于创建与滚动相关的和其他高性能程序化动画。 | 合成器线程 | CSS 动画 Worklet API |
LayoutWorklet |
用于定义自定义元素的定位和尺寸。 | CSS 布局 API | |
SharedStorageWorklet |
用于在跨站点数据上运行私有操作,而不会造成数据泄漏风险。 | 主线程 | 共享存储 API |
注意:由 CSS 绘制 API 定义的绘制 worklets 不会继承 Worklet
。它们通过使用 CSS.paintWorklet
获取的常规 Worklet
对象进行访问。
对于使用 WebGL 进行 3D 渲染,您不需要使用 worklets。相反,您需要使用 GLSL 代码编写顶点着色器和片段着色器,然后这些着色器将在显卡上运行。
实例属性
Worklet 接口没有定义任何属性。
实例方法
Worklet.addModule()
-
将给定 URL 上的脚本模块添加到当前 worklet。
规范
规范 |
---|
HTML 标准 # worklets-worklet |
浏览器兼容性
BCD 表格仅在浏览器中加载
另请参阅
- Houdini:揭秘 CSS 在 Google Developers 上(2016)
- AudioWorklet :: 什么、为什么以及如何 在 YouTube 上(2017)
- 进入 AudioWorklet 在 Google Developers 上(2017)
- 动画 Worklet - HTTP203 冒险 在 YouTube 上(2017)