Worklet

Baseline 广泛可用 *

此特性已得到良好支持,可在多种设备和浏览器版本上使用。自 2021 年 4 月起,所有浏览器均已支持此特性。

* 此特性的某些部分可能存在不同级别的支持。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

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

浏览器兼容性

另见