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)