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

瀏覽器相容性

另見