Como posso fazer o setInterval também funcionar quando uma guia está inativa no Chrome?

Eu tenho umsetInterval executando um pedaço de código 30 vezes por segundo. Isso funciona muito bem, no entanto, quando seleciono outra guia (para que a guia com meu código fique inativa), osetInterval está definido como inativo por algum motiv

Fiz este caso de teste simplificado http: //jsfiddle.net/7f6DX/3):

var $div = $('div');
var a = 0;

setInterval(function() {
    a++;
    $div.css("left", a)
}, 1000 / 30);

Se você executar esse código e depois mudar para outra guia, aguarde alguns segundos e volte, a animação continuará no ponto em que você mudou para a outra guia. Portanto, a animação não está sendo executada 30 vezes por segundo, caso a guia esteja inativa. Isso pode ser confirmado contando a quantidade de vezes quesetInterval função @ é chamada a cada segundo - isso não será 30, mas apenas 1 ou 2 se a guia estiver inativ

Acho que isso é feito por design, a fim de melhorar o desempenho, mas existe alguma maneira de desativar esse comportamento? Na verdade, é uma desvantagem no meu cenário.

questionAnswers(13)

yourAnswerToTheQuestion