3
私のアイドル時間を検出するためにwebworkerを使用したいと思います。javascript/Jqueryでwebworkerを使用してアイドル時間を検出するにはどうすればよいですか?
私はいくつかのコードを書いています。私のカウンターがマウスの移動またはキーの押下で再開するために追加する必要があるものは何ですか?
私は新しいコーディングです。助けてください。
<ul id="message-list"></ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript">
var worker = new Worker('demo.js');
worker.onmessage = function(e){
var message =e.data;
$('#message-list').append('<li>'+message+'</li>');
}
</script>
これは私のメインのHTMLファイルとdemo.jsでは以下の通りです:
var idleTime = 0;
var idleInterval = setInterval(timerIncrement, 1000);
function timerIncrement() {
idleTime = idleTime + 1;
self.postMessage(idleTime);
if (idleTime == 15) { // 15 seconds
self.close();
}
}
15秒間に実行されます。このコードのループでは、ワーカーが終了します。ここに私のコードです。私が望むのは、マウスを動かすか、キーボードの任意のキーを押すと、このループは再び0から始まります。ウェブ労働者がDOMへのアクセスを持っていないので、キーを押すか、マウスを移動しているとき、あなたはあなたのメインスレッドからワーカーにメッセージを投稿することができます
これに労働者を使用することを決めた特別な理由はありますか?メインスレッドでうまく動くようなものですか? – adeneo
@adeneoこのデモで追加しようとしていることがいくつかあります.jsと私はこれもワーカーjsの内部でも使用できる方法があれば考えました – Frank
@adeneo私は従業員を一度も使わなかったので、複数のpostmessageとonmessageを持っています... 1つのpostmessageがいくつかの異なるオブジェクトを送信していて、別のpostmessageがメインページのonmessageによって読み込まれる別のオブジェクトを送信していますか? – Frank