Estaba probando la precisión del setTimeout
uso de esta prueba . Ahora noté que (como se esperaba) setTimeout
no es muy preciso, pero para la mayoría de los dispositivos no es dramáticamente inexacto. Ahora, si ejecuto la prueba en Chrome y dejo que se ejecute en una pestaña de fondo (entonces, cambiando a otra pestaña y navegando allí), volviendo a la prueba e inspeccionando los resultados (si la prueba terminó), cambian drásticamente. Parece que los tiempos de espera se han estado ejecutando mucho más lento. Probado en FF4 o IE9, esto no ocurrió.
Por lo tanto, parece que Chrome suspende o al menos ralentiza la ejecución de JavaScript en una pestaña que no tiene foco. No se pudo encontrar mucho en la red sobre el tema. Significaría que no podemos ejecutar tareas en segundo plano, como por ejemplo verificar periódicamente en un servidor usando llamadas XHR y setInterval
(sospecho que veré el mismo comportamiento setInterval
, escribiré una prueba si el tiempo es mío).
¿Alguien ha encontrado esto? ¿Habría una solución para esta suspensión / desaceleración? ¿Lo llamarías un error y debería archivarlo como tal?
transition
, por lo que no todos los divs hacen la transición al mismo tiempo, pero en realidad 15 ms después de cada uno, creando un efecto de balanceo. Cuando voy a otra pestaña y regreso después de un tiempo, todos los divs hacen la transición al mismo tiempo y setTimeOut
se ignora por completo. No es un gran problema para mi proyecto, pero es una adición extraña y no deseada.