我有这段代码可以正常工作,但如果用户在说 5 次迭代后不活动(没有鼠标移动)而不是处于连续循环中,我想停止轮询和 clearInterval。
var i, active = new Date, iter = 1;
$(window).on('mousemove', function(e){
active = new Date;
});
i = setInterval(function(){
if(new Date().getTime() - active.getTime() < 1000){
console.log("sending active event to server.....");
iter = 1;
else{
iter++;
if(iter >= 5){
clearInterval(i);
}
}
}, 2000);
现在它在这个例子中每两秒检查一次。我想检查活动日期说 5 次,如果它连续 5 次迭代过期,请调用 clearInterval(i)... 所以 mousemove 回调中的某些内容应该仅在当前未运行时重新初始化 setInterval。我怎样才能做到这一点?感谢您提供任何提示和示例。如果可能的话,我想继续使用匿名函数。