Workerで遊んでみた話

だいぶんイベントドリブンや非同期(並列?)の処理に慣れてきたニートですこんばんは。
『パーフェクトJavaScript』を読み進めていくと、ワーカについて書いてある項目がありました。
『JavaScript本格入門』でも触れられていた気がするのですが、いかんせん当時の僕の知識では理解しきれませんでした
というわけで、『パーフェクトJavaScript』を通読している今なら普通に理解できたのでちょっと遊んでみました。

サンプルコード

適当なプラグイン(ここではTestPlugin.jsとします)に以下のコードを書きます。

(function() {

var worker = new Worker(PluginManager._path + 'WorkerTest.js');

worker.onmessage = function(e) {
console.log(e.data);
};

})();

WorkerTest.jsにはこんなコードを。

(function() {
var progress = 0;

setInterval( function() {
progress = (progress + 1) % 100;
self.postMessage(progress);
}, 100);

})();

TestPlugin.jsをプラグインリストに追加し、WorkerTest.jsはjsフォルダにぶっこみます。
このとき、WorkerTest.jsはプラグインリストに追加する必要はありません。
というか今回のコードの場合ですと、プラグインリストに追加するとダメです。

実行する

100ms経つたび、コンソール画面に数字が表示されますね。
99まで表示されたらまた0に戻ります。
これが繰り返されるだけのクソプログラムです。

こんな実験をしたよーというメモなので、特にコードの意味とかは説明しません。

ワーカの使い道

ワーカはいわゆるマルチスレッドで動きます。
ツクールMVで果たして使いどころがあるのかどうか謎ですが、とりあえず覚えておいて損はないかなーと思ったので実験してみました。
ちなみに、僕は基本ローカル環境でしかテストしませんので、アツマールとかスマホでは動かないかもしれません。

フォローする