简单的setInterval计时器停止在Safari中的选项卡模糊

时间:2015-12-09 19:57:20

标签: javascript timer setinterval

我有一个简单的计时器,我构建了一个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的减速效果。如何在不向网络工作者卸载任何内容的情况下防止这种速度变慢?

1 个答案:

答案 0 :(得分:0)

你在这里使用setInterval有什么特别的原因吗?可能是Safari减慢模糊的原因是为了防止标签在用户不注意它们时浪费CPU周期。您的代码中可能如此重要以至于每秒都需要更新,即使用户没有专注于它?

无论如何,您可以监听onbluronfocus以根据需要暂停或重新启动计时器。如果你需要为其他目的保持完美的计时,总是Date.now()