2

我正在开发一个记录时间的计时器。因为我正在使用 java 脚本的 setInterval 方法,现在的问题是如果选项卡处于非活动状态,它就不能正常工作。

一种解决方案我必须存储旧时间并从新时间中减去一个问题,如果在启动计时器后如果用户更改系统时间那么它会影响我的计时器。如果有任何其他可能的方法或解决方案,请告诉我。

timerInterval = setInterval(function() {
    seconds=seconds+1;
    if(seconds==60)
    {
        minutes=minutes+1;
        if(minutes==60)
        {
            minutes=0;
            hours=hours+1;
        }                                               
        $("#task"+aData['taskId']).html(("0" + hours).slice(-2)+":"+("0" + minutes).slice(-2));
        seconds=0;
    }
},1000);
4

2 回答 2

0

我做了一个plunker,我编辑了我的时间,但计时器一直在走。

$(document).ready(function(){
  var seconds = 0;
  var hours = 0;
  var minutes = 0;

  setInterval(function(){
    seconds++;
    if(seconds == 60)
    {
        seconds=0;
        minutes++;
        if(minutes == 60)
        {
            minutes=0;
            hours++;
        }    
    }
    $(".timer").html(("0" + hours).slice(-2)+":"+("0" + minutes).slice(-2)+":"+("0" + seconds).slice(-2));
  },1000);
});

并在 html 中显示计时器的标签:

<h2 class="timer"></h2>

http://plnkr.co/edit/yWQWrGxnkgOFvXDoLNhU?p=preview

让我知道这是否对您有帮助!

于 2014-11-19T11:17:22.183 回答
0

尝试setTimeout代替setInterval

setInterval不要根据浏览器负载优先调用函数。我遇到了同样的问题,我用setTimeout

于 2014-11-19T11:04:17.673 回答