我有这段代码可以正常工作,但如果用户在说 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。我怎样才能做到这一点?感谢您提供任何提示和示例。如果可能的话,我想继续使用匿名函数。