このコードは正常ですが、連続ループではなく5回反復した後にユーザーが非アクティブ(マウス移動なし)であれば、ポーリングとclearIntervalを停止したいと思います。clearIntervalがjavascriptで呼び出された後、どのようにsetIntervalを再開できますか?
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);
ここでは、この例では2秒ごとにチェックしています。私は、アクティブな日付を5回、5回連続して期限切れにした場合、clearInterval(i)を呼び出します。mousemoveコールバック内の何かが、現在実行中でない場合にのみ、setIntervalを再初期化する必要があります。どうすればこれを達成できますか?ヒントやサンプルをありがとう。私は可能な限り無名関数を使い続けたいと思います。