J'ai un setInterval
de l'exécution d'un morceau de code 30 fois par seconde. Cela fonctionne très bien, mais quand je suis sélectionnez un autre onglet (de sorte que la languette avec mon code devient inactif), l' setInterval
est fixé à un état inactif pour une raison quelconque.
J'ai fait ce simplifié de cas de test (http://jsfiddle.net/7f6DX/3/):
var $div = $('div');
var a = 0;
setInterval(function() {
a++;
$div.css("left", a)
}, 1000 / 30);
Si vous exécutez ce code, et puis de passer à un autre onglet, attendre quelques secondes et revenir en arrière, l'animation continue au point où il était au moment de passer à l'autre onglet. Si l'animation n'est pas en cours d'exécution 30 fois par seconde dans le cas de l'onglet est inactif. Cela peut être confirmé par compter le nombre de fois que le setInterval
fonction est appelée à chaque seconde - ce ne sera pas 30 mais juste 1 ou 2 si l'onglet est inactif.
Je suppose que c'est fait à dessein, de manière à améliorer les performances, mais est-il possible de désactiver ce comportement? Il est en fait un désavantage dans mon scénario.