当浏览器选项卡未聚焦时,Javascript setInterval / setTimeout不起作用

时间:2015-08-28 14:24:45

标签: javascript jquery highcharts focus

所以我正在修改Highcharts饼图,试图执行以下操作:

function updateAngle( lastAngle ) {
    if ($("#container").highcharts() != null && $("#container").highcharts() != undefined) {
        var currentAngle = lastAngle;
        var destinationAngle = getAngle();
        if (currentAngle != destinationAngle) {
            currentAngle += 1;
            if (currentAngle > destinationAngle) {
                currentAngle = destinationAngle;
            }
            $("#container").highcharts().get('Series').update({
                endAngle: currentAngle
            });
            setTimeout(updateAngle, 1, currentAngle);
        }
    }
}

在每次交互之后,我在上一个角度添加1,现在我已经读过setInterval / setTimeout由于没有请求动画而在选项卡时不能与浏览器一起使用。我已经读过" .queue"是一个可以为我工作的函数,但我不确定如何将我的setTimeout方法转换为使用.queue。

1 个答案:

答案 0 :(得分:1)

超时被限制为在非活动标签中每秒不超过一次(1000毫秒)发射,但它们仍然会发射。您的代码不会有任何问题。