0
Googleマップのマーカーをクリックしてウェブワーカーを開始しています。クリックイベントが発生すると、そのマーカーのID(私の場合はsensorid)が関数に渡され、ワーカーが開始され、ワーカーはそのIDに対してデータを取得します。すべてがうまくいっています。しかし、再びイベントが発生したとき、またはその関数が新しいsensoridで呼び出されたときに、ワーカーを再起動したい。 ワーカーを開始する機能コード。コンソールから同じイベントが発生した場合、ウェブワーカーを終了して再起動してください。
function showgraph(sensorid) {
console.log("showing graph of " + sensorid);
var graphworker = undefined;
if (typeof (graphworker) == "undefined") {
graphworker = new Worker('worker/graphworker.js');
graphworker.onmessage = function (event) {
// other task will happen there
}
graphworker.postMessage(sensorid);
}
else {
graphworker.terminate();
graphworer = undefined;
console.log("worker is stoped");
//but my previuos worker is not terminating here
}
}
出力は
である私のワーカーのコードは、私がコードに従うことによって、この問題を解決していた
self.addEventListener('message', function (sensorid)
{
var t = setInterval(fun, 3000);
function fun() {
var id = sensorid.data;
console.log("form graph worker"+ id);
},false);