ウェブワーカー


ウェブワーカー

 ウェブワーカーは、バックグランドで何かの作業をJavaScriptで行わせたいときに使用します。この動作は他のスクリプト動作と独立して行われるため、スクリプトの動作を阻害しません。

 次のサンプルはワーカを使って0.5秒ごとにカウントアップを表示するものです。 もし、ワーカが初期化されていないときは、外部JavaScriptファイル(worker.js)をワーカオブジェクト w にロードします。 ロード済みの場合は、ワーカのonmessageイベントハンドラを登録します。イベントハンドラは、イベントが発生するとワーカから受け取ったデータを表示します。
 Stopボタンをクリックすると、ワーカを停止しリソースを解放します。

<script>
var w;

function onstart() {
  if(typeof(w) == "undefined") {
    w = new Worker("worker.js");
  }
  w.onmessage = function(event) {
    $("#result1").text(event.data);
  };
}

function onstop() { 
  w.terminate();
  w = undefined;
}
</script>

<form>
<button id="start" type="button" onclick="onstart()">Start</button>
<button id="stop" type="button" onclick="onstop()">Stop</button>
</form>

 "worker.js"のソースは次の通りです。

var i = 0;

function timedCount() {
    i = i + 1;
    postMessage(i);
    setTimeout("timedCount()", 500);
}
timedCount();



 

このページの先頭へ戻る