我有一个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次。我想这是出于设计考虑而这样做以提高系统性能,但是否有任何方法可以禁用此行为?
实际上,在我的场景中,这是一个缺点。