Worklet
Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。
Worklet
インターフェイスは軽量なウェブワーカーを提供し、開発者がレンダリングパイプラインの低水準な部分を制御できるようにします。
ワークレットでは、グラフィックや音声処理といった、高い性能を必要とする処理を JavaScript や WebAssembly コードを使って記述できます。
ワークレットの種類
ワークレットの利用はいくつかの用途に限定されています。つまり、ウェブワーカーのように好きな計算をさせる用途には使えません。 Worklet
インターフェイスは、すべての種類のワークレットに共通する属性とメソッドを抽象化する一方、直接インスタンスを作成することはできません。実際にインスタンスを作成するには、以下のクラスを利用します。
クラス名 | 説明 | 動作するスレッド | 仕様書 |
---|---|---|---|
PaintWorklet |
CSS プロパティがファイルを必要とする場合に、プログラムによって画像を生成するためのものです。このインターフェイスには CSS.paintWorklet でアクセスします。
|
Chrome: メインスレッド Gecko: 描画スレッド |
CSS 描画 API |
AudioWorklet |
カスタムオーディオノードでの音声処理のために使用します。 | ウェブオーディオレンダリングスレッド | ウェブオーディオ API |
AnimationWorklet |
スクロールに伴うアニメーションや、性能を必要とするアニメーションをプログラミングするために使用します。 | 編集スレッド | CSS アニメーションワークレット API |
LayoutWorklet |
カスタム要素のサイズと位置を定義するために使用します。 | CSS レイアウト API |
WebGL を用いた 3D グラフィックにはワークレットを使用しません。その代わりに GLSL で記述した頂点シェーダーとフラグメントシェーダーを書いてください。これらのシェーダーコードはグラフィックカードの上で動作します。
プロパティ
Worklet インターフェイスでは、プロパティは定義されていません。
メソッド
Worklet.addModule()
Experimental-
指定された URL にあるスクリプト モジュールを現在のワークレットに追加します。
仕様書
Specification |
---|
HTML Standard # worklets-worklet |
ブラウザーの互換性
BCD tables only load in the browser
関連情報
- Houdini: Demystifying CSS on Google Developers (May 2016)
- AudioWorklet :: What, Why, and How on YouTube (November 2017)
- Enter AudioWorklet on Google Developers (December 2017)
- Animation Worklet - HTTP203 Advent on YouTube (December 2017)