如何在jquery中的10s空闲时间后执行函数?

时间:2016-01-08 05:52:32

标签: javascript jquery html

示例:

实际上如果系统空闲,如何每10秒执行一次功能。

示例:

setInterval(function () {
         test();
         },10000); 
//for every 10 Sec 

如果系统空闲,我正在寻找10秒。请帮我解决我的问题。

4 个答案:

答案 0 :(得分:6)

检查mousemove上的keyupkeypressdocument事件,并在其中调用settimeoutcleartimeout,如下所示:

var interval;
$(document).on('mousemove keyup keypress',function(){
    clearTimeout(interval);//clear it as soon as any event occurs
  //do any process and then call the function again
    settimeout();//call it again
})

function settimeout(){
    interval=setTimeout(function(){
    alert("Idle for 10s"); 
  },10000)
}

<强> DEMO

答案 1 :(得分:1)

setInterval是要使用的函数,但是如果只在系统空闲时运行,则需要在发生其他情况时重置间隔。

所以你这样做:

timeout = setTimeout(function() { test();},10000);

当其他事情发生时,你做

clearTimeout(timeout); //clear the timeout
//do stuff;
timeout = setTimeout(function() { test();},10000); //and re-activate it when done

或更一般地说:

var myVar;

function myFunction() {
    myVar = setTimeout(function(){ test(); }, 3000);
}

function myStopFunction() {
    clearTimeout(myVar);
}

答案 2 :(得分:0)

试试这个

setTimeout(function() { test (); }, 10000);

答案 3 :(得分:0)

试试这个 - 在您认为有用的任何事件中调用函数

function test(){      
   // Use your code here...
}
setTimeout(test, 10000);