我有一个简单的计时器,我构建了一个setInterval函数。每隔1秒,它会将计时器的值增加1.当我单击选项卡到Safari中的其他选项卡时,它会减慢速度。你可以在这个基本的CodePen中看到我在说什么:
http://codepen.io/anon/pen/rxVMRp
这是基本的JS代码:
function setTimer(){
var curTime = parseInt($('.timer').text());
var newTime = curTime+1;
$('.timer').text(newTime);
}
setInterval(setTimer, 1000);
当然,我的计时器有点高级,但在这个基本示例中你仍然可以看到Safari中setInterval的减速效果。如何在不向网络工作者卸载任何内容的情况下防止这种速度变慢?
答案 0 :(得分:0)
你在这里使用setInterval
有什么特别的原因吗?可能是Safari减慢模糊的原因是为了防止标签在用户不注意它们时浪费CPU周期。您的代码中可能如此重要以至于每秒都需要更新,即使用户没有专注于它?
无论如何,您可以监听onblur
和onfocus
以根据需要暂停或重新启动计时器。如果你需要为其他目的保持完美的计时,总是Date.now()
。