--- title: Worklet slug: Web/API/Worklet translation_of: Web/API/Worklet --- <div>{{APIRef("Worklets")}}{{SeeCompatTable}}</div> <p class="summary"><span class="seoSummary">The <strong><code>Worklet</code></strong> インタフェースは軽量な {{domxref("Worker", "Web Workers")}} を提供し、開発者がレンダリングパイプラインの低水準な部分をコントロールできるようになります。Worklet では</span>グラフィックや音声処理といった、性能を必要とする処理を <span class="seoSummary">JavaScript や </span><a href="/en-US/docs/WebAssembly">WebAssembly</a> を使って記述できます。</p> <h2 id="Worklet_の種類">Worklet の種類</h2> <p>Worklets の利用はいくつかの用途に限定されています; つまり Web Worker のように好きな計算をさせるといった用途には使えません。<code>Worklet</code> インタフェースは、すべての種類の worklet に共通する属性とメソッドを抽象化する一方、直接インスタンスを作成することはできません。実際にインスタンスを作成するには、以下のクラスを利用します:</p> <table class="standard-table"> <thead> <tr> <th>クラス名</th> <th>説明</th> <th>動作するスレッド</th> <th>仕様</th> </tr> </thead> <tbody> <tr> <td>{{domxref("PaintWorklet")}}</td> <td>CSSのカスタムプロパティの描画方法を定義するために使用します。{{DOMxRef("CSS.paintWorklet")}} から利用できます。</td> <td><strong>Chrome:</strong> Main thread<br> <strong>Gecko:</strong> Paint thread</td> <td><a href="https://drafts.css-houdini.org/css-paint-api-1/#paint-worklet">CSS Painting API</a></td> </tr> <tr> <td>{{domxref("AudioWorklet")}}</td> <td> <p>カスタムオーディオノードでの音声処理のために使用します</p> </td> <td>Web Audio render thread</td> <td><a href="https://webaudio.github.io/web-audio-api/#AudioWorklet">Web Audio API</a></td> </tr> <tr> <td>{{domxref("AnimationWorklet")}}</td> <td>スクロールに伴うアニメーションや、性能を必要とするアニメーションをプログラミングするために使用します</td> <td>Compositor thread</td> <td><a href="https://wicg.github.io/animation-worklet/">CSS Animation Worklet API</a></td> </tr> <tr> <td>{{domxref("LayoutWorklet")}}</td> <td>カスタムエレメントのサイズと位置を定義するために使用します</td> <td> </td> <td><a href="https://drafts.css-houdini.org/css-layout-api-1/#layout-worklet">CSS Layout API</a></td> </tr> </tbody> </table> <p class="note"> <a href="/en-US/docs/Web/API/WebGL_API">WebGL</a> を用いた 3D グラフィックスには Worklet を使用できません。その代わりにGLSLで記述した頂点シェーダとフラグメントシェーダを 使用します。これらのシェーダコードはグラフィックスカードの上で動作します。</p> <h2 id="属性">属性</h2> <p><em>Worklet インタフェースでは、属性は定義されていません。</em></p> <h2 id="メソッド">メソッド</h2> <dl> <dt>{{domxref("Worklet.addModule()")}} {{experimental_inline}}</dt> <dd>Worklet にスクリプトモジュールをURLで追加します。</dd> </dl> <h2 id="仕様">仕様</h2> <table class="standard-table"> <tbody> <tr> <th scope="col">仕様</th> <th scope="col">状況</th> <th scope="col">コメント</th> </tr> <tr> <td>{{SpecName('Worklets', '#worklet', 'Worklet')}}</td> <td>{{Spec2('Worklets')}}</td> <td> </td> </tr> </tbody> </table> <h2 id="ブラウザ互換性">ブラウザ互換性</h2> <div> <p>{{Compat("api.Worklet")}}</p> </div> <h2 id="関連情報">関連情報</h2> <ul> <li><a href="https://developers.google.com/web/updates/2016/05/houdini">Houdini: Demystifying CSS</a> on Google Developers (May 2016)</li> <li><a href="https://www.youtube.com/watch?v=g1L4O1smMC0&t=1m33s" title="">AudioWorklet :: What, Why, and How</a> on YouTube (November 2017)</li> <li><a href="https://developers.google.com/web/updates/2017/12/audio-worklet">Enter AudioWorklet</a> on Google Developers (December 2017)</li> <li><a href="https://www.youtube.com/watch?v=ZPkMMShYxKU&t=0m19s" title="">Animation Worklet - HTTP203 Advent</a> on YouTube (December 2017)</li> </ul>