Workerとデータのやりとりを行う
説明
Workerとデータのやりとりを行うにはワーカーオブジェクトのpostMessage()メソッドを使います。ワーカー側ではグローバルオブジェクトのpostMessage()メソッドを使って呼び出し元にデータを返します。ワーカーや呼び出し元にデータを渡す場合にはpostMessage()メソッドのパラメータに指定します。いずれの場合もイベントオブジェクトが渡され、そのdataオブジェクト(プロパティ)を参照することで渡されたデータを読み出すことができます。
サンプルプログラム
【HTML】
<!DOCTYPE html>
<head>
<meta charset="utf-8" />
<title>Sample</title>
<link rel="stylesheet" href="css/main.css" type="text/css" media="all">
</head>
<body>
<h1>Workerとデータのやりとりを行う</h1>
<div id="result"></div>
<script type="text/javascript" src="js/sample.js"></script>
</body>
</html>
【スクリプト】
var myWorker = new Worker("js/sub.js");
myWorker.onmessage = function(evt){
var text = evt.data;
document.getElementById("result").innerHTML = text;
}
myWorker.postMessage("サンプルです");
【スクリプト】sub.js(ワーカー側のスクリプト)
onmessage = function(evt){
postMessage("from Worker:"+evt.data);
}