我正在开发一个记录时间的计时器。因为我正在使用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);
答案 0 :(得分:0)
尝试使用setTimeout
代替setInterval
setInterval
不根据浏览器负载确定调用函数的优先级。我遇到了同样的问题,我使用setTimeout
答案 1 :(得分:0)
我做了一个傻瓜,我编辑了我的时间,但计时器一直在继续。
$(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
请告诉我这是否可以帮助您!