photo credit: Pallet
via photopin
(license)
TransWorkerは WebWorkerによるJavaScriptのマルチスレッドを手軽に使えるようにするモジュール です。
ユーザーが作成したクラスのインスタンスをワーカースレッド側で生成し、 そのクラスのインスタンスメソッドをメインスレッド側からリモート呼び出しできるようにします。
メインスレッドではユーザー定義クラスのプロトタイプを読み取り、 スレッド間メッセージを送信する同名のラッパーメソッドを生成します。
ワーカスレッド側では、このメッセージを受信すると、クラスインスタンスのメソッドを呼び出して、 その戻り値をスレッド間メッセージでメインスレッドへ戻します。
- ワーカースレッド側からメインスレッドへ通知メッセージを発行。
- メインスレッドからワーカースレッドへのTransferableオブジェクトの移譲(⇒Transferable - Web API | MDN)。
- WebWorkerは DedicatedWorker と SharedWorker に対応しています。
npm install --save transworker
const TransWorker = require("transworker");
バンドラーを使用しない場合は、ビルド済みの transworker.js を読み込みます。 TransWorker クラスが利用可能です。
<script src="${parent/of/repo}/transworker/transworker.js"></script>
最新のビルド済みスクリプトを https://takamin.github.io/transworker/transworker.js で公開しています。
MIT