[英]Chrome setTimeout() timing issues
我有一个简单的倒计时脚本( jsFiddle )。
var time = 60;
function countDown(timeLeft){
$("#timeLeft").text(timeLeft);
if(timeLeft!=0){
setTimeout(function(){ countDown(--timeLeft); }, 1000);
}
}
countDown(time);
由于某种原因,如果我在Chrome中运行它并专注于其他选项卡,则计时器要比它慢了两倍...因此,当我同时在手机上运行独立计时器时,计时器运行正常,用我的计时器将焦点移回到选项卡上,它显示还剩约30秒。 当包含脚本的选项卡处于焦点位置时,它工作得很好,只有在后台打开时,它的运行速度才特别慢。 在Firefox中不会发生这种情况。 是某种奇怪的错误还是我做错了什么?
问题是您设置了太多setTimeout函数,时间= 60,有60个setTimeouts,因此它们会损害您的性能。 您可以改用setInterval:
function countDown(timeLeft){
var intervalProc = setInterval(function(){
$("#timeLeft").text(timeLeft);
timeLeft--;
if(timeLeft <= 0){
clearInterval(intervalProc);
}
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.