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开始。
$(document).keypress(function(e){
worker.postMessage({
type: 'KEYPRESS',
keycode: e.which
});
});
而在你woker听:
是否有任何特定的原因,你决定使用这个工人?这似乎是在主线程中运行得很好的东西? – adeneo
@adeneo还有一些其他的东西,我将添加在这个demo.js,我想如果有一种方法,我可以在工作人员内使用这个js – Frank
@adeneo我从来没有使用过工人,因此我想问我们可以有多个postmessage和onmessage ...就像一个postmessage发送一些不同的对象,另一个postmessage发送不同的对象,通过主页中的onmessage读取? – Frank