【问题标题】:refresh countdown timer when mouse move/click or key press鼠标移动/单击或按键时刷新倒数计时器
【发布时间】:2017-09-07 09:02:01
【问题描述】:

如果没有任何操作,我会使用倒数计时器来销毁我的会话。

  var idleTime = 0;
  function Timer(duration, display)  {
    var timer = duration, hours, minutes, seconds;
    setInterval(function () {
        hours = parseInt((timer /3600)%24, 10)
        minutes = parseInt((timer / 60)%60, 10)
        seconds = parseInt(timer % 60, 10);

        hours = hours < 10 ? "0" + hours : hours;
        minutes = minutes < 10 ? "0" + minutes : minutes;
        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.text(hours +":"+minutes + ":" + seconds);
        if(hours == 0 && minutes == 0 && seconds == 0){
            $.ajax({
              url:'../ajax/logoutuser.php?action=logout',

              success: function(data){
                window.location.href = '../index.php';
              }
            });
        }else{
           --timer;
        }

    }, 1000);
}

function timerIncrement() {
    idleTime = idleTime + 1;
    if (idleTime > 1) { // 20 minutes
         var twentyFourHours = 1 * 60 * 60;
        var display = $('#time');
        Timer(twentyFourHours, display);
    }
}

$(document).ready(function(){
   var idleInterval = setInterval(timerIncrement, 60000); // 1 minute

    //Zero the idle timer on mouse movement.
    $(this).mousemove(function (e) {
        idleTime = 0;
    });
    $(this).keypress(function (e) {
        idleTime = 0;
    });

});

起初它可以工作,但问题是当倒数计时器开始运行时,即使我从页面上进行任何操作(如鼠标单击/鼠标移动/按键)它也不会刷新倒数计时器..我想要什么如果一旦倒计时计时器运行,如果我进行另一个动作倒计时计时器将重新加载。

就像当我刷新我的页面时,倒数计时器也会刷新.. 有没有办法做到这一点?

【问题讨论】:

  • if (idleTime > 1) {
  • 不,我只是没有删除注释,因为我修改了代码,我不想错过任何东西。这就是为什么

标签: javascript jquery timer


【解决方案1】:

如果你想重置你setInterval,SO已经有答案了: https://stackoverflow.com/a/8126515/6053654

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-02
    • 2012-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多