当选项卡在Chrome中不活动时,如何使setInterval也工作?
我有一个setInterval
每秒运行一段代码30次。但是,当我选择另一个选项卡(因此我的代码的选项卡变得不活跃)时,这是很好的。setInterval
由于某种原因被设置为空闲状态。
我做了这个简化的测试用例(http://jsfiddle.net/7f6DX/3/):
var $div = $('div');var a = 0;setInterval(function() {
a++;
$div.css("left", a)}, 1000 / 30);
如果运行此代码,然后切换到另一个选项卡,等待几秒钟,然后返回,动画将在切换到另一个选项卡时继续进行。因此,如果选项卡是不活动的,动画不会每秒运行30次。这可以通过计算setInterval
函数每秒钟调用一次-如果选项卡是非活动的,这将不是30,而只是1或2。
我想这是通过设计来提高性能的,但有没有办法阻止这种行为呢?在我的场景中,这实际上是一个缺点。