J'ai été tester la précision d' setTimeout
à l'aide de ce test. Maintenant, j'ai remarqué que (comme prévu) setTimeout
n'est pas très précise, mais pour la plupart des appareils qui ne sont pas radicalement inexact. Maintenant, si je lance le test dans le Chrome et le laisser tourner dans un onglet en arrière-plan (et donc passer à un autre onglet et de naviguer là-bas), le retour à l'essai et à l'inspection te des résultats (si le test terminé), ils sont considérablement changé. On dirait les délais d'attente ont été en cours d'exécution beaucoup plus lent. Testé dans FF4 ou IE9 n'en est pas de se produire.
Donc, il semble que Chrome suspend ou au moins ralentit l'exécution de javascript dans un onglet qui n'a pas le focus. Ne pouvais pas trouver beaucoup sur le net sur le sujet. Cela voudrait dire que nous ne pouvons pas exécuter des tâches de fond, comme par exemple vérifier périodiquement sur un serveur utilisant le XHR appels et setInterval
(j'ai l'impression de voir le même comportement pour setInterval
, écrire un test, si le temps est avec moi).
Quelqu'un a rencontré ce? Y'aurait-il une solution pour ce cas de suspension ou de ralentir? Peut-on appeler ça un bug et que je devrais fichier comme ça?