Chrome setTimeout() 计时问题
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 个 setTimeout,所以它们会损害你的性能。您可以改用 setInterval:
function countDown(timeLeft){
var intervalProc = setInterval(function(){
$("#timeLeft").text(timeLeft);
timeLeft--;
if(timeLeft <= 0){
clearInterval(intervalProc);
}
})
}
相关文章:
- 使setInterval和setTimeout工作时出现问题
- setTimeout调用自身的任何问题
- 通过抛出setTimeout()来处理JavaScript异常的任何问题
- setTimeout范围问题
- Javascript初学者:setTimeout隐藏/显示问题
- 对jQuery使用setTimeout()是否有任何问题;媒体查询“;类型情况
- javascript 中的 setTimeout 问题
- 使用 setTimeout 在画布中制作动画时出现问题
- Jquery 鼠标悬停与 setTimeout() 和淡入/淡出问题
- Javascript 中使用 setTimeout 的作用域问题
- 正在清除setTimeout问题
- 不理解这个setTimeout是如何/为什么修复我的IE8问题的
- 奇怪的setTimeout问题
- IE8 中的 setTimeOut 和无响应脚本出现问题
- Javascript setTimeout函数问题
- Chrome setTimeout() 计时问题
- JavaScript setTimeout内存问题
- Javascript setTimeout参数问题(I'm使用匿名函数版本)
- setTimeout传递参数问题
- Javascript setTimeout问题w/ for循环