ワーカースレッドでのwindow.alert
-
26-09-2019 - |
質問
私はwebworkerクライアント上のwindow.alertを置く場合は、
は、バックグラウンドワーカーが働いて停止します。 なぜこれがあるので、?
すなわち。 呼び出し側ます:
var worker = new Worker("worker.js");
// Watch for messages from the worker
worker.onmessage = function(e){
// The message from the client:
e.data
};
worker.postMessage("start");
クライアント(worker.js)
onmessage = function(e){
if ( e.data === "start" ) {
// Do some computation
done()
}
};
function done(){
alert('don'); // ===> This kills the worker.
// Send back the results to the parent page
postMessage("done");
}
解決
あなたは、ユーザーが[OK]をクリックするまで、警告のJavaScriptエンジンをフリーズ気づいていたの。
あなたはそれがフリーズしたくない場合は、アラートを使用しないでください。
放火犯とデバッグのために
console.log("bla bla bla");
非ロックポップアップの場合:
これで[OK]ボタンで隠されたdiv要素を作ります。ときにポップアップが表示されます。目に見えるのdivを置きます。ユーザーが「OK」非表示をクリックすると、それます。
私はポップアップを使用しないように、あなたを助言します。 )
:また、画面の背後にあるユーザーの(ユーザーの濃度を意味する)「作業の流れ」を壊します他のヒント
ウェブ労働者はのwindow.alertへのアクセス権を持っていない...私は知っているウェブの労働者は、DOMアクセスを得ることはありません..
労働者で、
をしない理由if (window && window.alert) {
// do your normal thing
}
else {
postMessage("no support for this");
}
ウェブ労働者はバックグラウンドで実行されたJavaScriptコードにあなたを許可します。ウェブ労働者が警告()または確認()関数を呼び出すことはできません。
所属していません StackOverflow