Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 任何用户活动(如onkeyup、鼠标移动等)上的倒计时计时器重置_Javascript_Jquery_Timer_Mouseevent_Onkeydown - Fatal编程技术网

Javascript 任何用户活动(如onkeyup、鼠标移动等)上的倒计时计时器重置

Javascript 任何用户活动(如onkeyup、鼠标移动等)上的倒计时计时器重置,javascript,jquery,timer,mouseevent,onkeydown,Javascript,Jquery,Timer,Mouseevent,Onkeydown,本规范的性质类似于: 然而,我在这里试图完成的是在文档上的任何用户活动时重置这个10秒计时器。对于我的测试,我目前正在使用keyup,但我还需要将鼠标移动到文档中的任何元素上,以实现这一点,等等 下面是代码,请参阅注释代码以了解我将要做的潜在更改,我对它们进行了注释,因为我发现它们实际上不起作用: $(function(){ //var keyed = false; function myFunction() { window.location.href="/backoffice/lo

本规范的性质类似于:

然而,我在这里试图完成的是在文档上的任何用户活动时重置这个10秒计时器。对于我的测试,我目前正在使用keyup,但我还需要将鼠标移动到文档中的任何元素上,以实现这一点,等等

下面是代码,请参阅注释代码以了解我将要做的潜在更改,我对它们进行了注释,因为我发现它们实际上不起作用:

$(function(){
//var keyed = false;
function myFunction() {
    window.location.href="/backoffice/logout.jsp?forceClose=true";
}

(function() {
    //Just under 15 min in milliseconds
    //var time = 895000,
    var time = 10000,
        delta = 100,
        tid;

    tid = setInterval(function() {
        if ( window.blurred ) { return; }    
        time -= delta;
        //if ( keyed ) { 
        //  time = 10000; 
        //} 
        //keyed = false;
        if ( time <= 0 ) {
            clearInterval(tid);
            myFunction(); // time passed - do your work
        }        
    }, delta);
})();
//window.onkeyup = function() { keyed = true; };
window.onblur = function() { window.blurred = true; };
window.onfocus = function() { window.blurred = false; };
});
$(函数(){
//var键控=假;
函数myFunction(){
window.location.href=“/backoffice/logout.jsp?forceClose=true”;
}
(功能(){
//以毫秒计不到15分钟
//var时间=895000,
var时间=10000,
δ=100,
工业贸易署;
tid=setInterval(函数(){
如果(window.fuzzle){return;}
时间-=增量;
//如果(键入){
//时间=10000;
//} 
//键控=假;

如果(time您可以在任何操作上重新启动计时器,如下所示:

var tid = null;

function startTimeout() {
  tid = setTimeout( // your code);
}

window.onkeyup = function() {
   tid && clearTimeout(tid);
   tid = startTimeout();
}
使用setTimeout而不是setInterval时,必须记住在再次完成后重新启动计时器:

function startTimeout() {
  tid = setTimeout(function(){ 
    // some code

    // start timer again!
    startTimeout();
  }, 10000);
}

您可以在任何操作上重新启动计时器,如下所示:

var tid = null;

function startTimeout() {
  tid = setTimeout( // your code);
}

window.onkeyup = function() {
   tid && clearTimeout(tid);
   tid = startTimeout();
}
使用setTimeout而不是setInterval时,必须记住在再次完成后重新启动计时器:

function startTimeout() {
  tid = setTimeout(function(){ 
    // some code

    // start timer again!
    startTimeout();
  }, 10000);
}
函数myFunction(){
//window.location.href=“/backoffice/logout.jsp?forceClose=true”;
警报(“你好世界”);
}
函数侦听器(){
window.time=10000,
δ=100,
window.tid=setInterval(函数(){
window.time-=delta;
console.log(window.time);
如果(时间<代码>函数myFunction(){
//window.location.href=“/backoffice/logout.jsp?forceClose=true”;
警报(“你好世界”);
}
函数侦听器(){
window.time=10000,
δ=100,
window.tid=setInterval(函数(){
window.time-=delta;
console.log(window.time);

if(时间解释:1)将setInterval包装在侦听器函数中2)在文档准备就绪时调用该函数3)侦听文档上的事件4)清除间隔,然后调用listenr againalso链接到jQuery:http//ajax.googleapis.com/ajax/libs/jQuery/1.7.2/jQuery.min.jsI仍在测试两个提供的解决方案,但可能听起来像个新手(我想我是这样)例如,将时间变量更改为window.time的原因是什么?没有理由,您可以忽略window.time(错误)解释:1)在侦听器函数中包装setInterval 2)在文档准备就绪时调用函数3)侦听文档上的事件4)清除间隔,然后调用listenr againalso链接到jQuery:http//ajax.googleapis.com/ajax/libs/jQuery/1.7.2/jQuery.min.jsI仍在测试两个提供的解决方案,但可能听起来像个新手(我想我是这样)例如,将时间变量更改为window.time的原因是什么?没有理由,您可以忽略window.time(错误)