最佳答案
我有一个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次。
我想这样做是为了提高系统性能,但是有什么方法可以禁用这种行为吗?
这在我看来是劣势。