No se garantiza que los tiempos sean los correctos. Para demostrar, configuré un test case que muestra que los tiempos varían un poco desde la marca de 1 segundo. En cuanto a la segunda parte de su pregunta, puede usar el evento animationend
para reiniciarlo, o también puede configurarlo para iterar (como he hecho en mi ejemplo).
Actualización Es difícil simular la asfixia del navegador, pero he notado una desviación significativa de la animación cuando se ha ahogado de forma natural. Por ejemplo, al cargar la página, mi Firebug se puso en marcha, lo que provocó que la primera animación saltara hacia abajo a 0.574 segundos, casi la mitad de mi valor original. Parece que el navegador intenta compensar un poco, pero también puede compensar en exceso. También he visto tiempos de hasta 2 segundos, así que no creo que puedas decir que el tiempo será exacto de ninguna manera.
Actualización 2 lo tanto, yo era capaz de get the browser to choke (tenía que contar hasta 1.000.000 en FF ... Estoy impresionado), y la respuesta rápida a su pregunta es no, no hace ningún tipo de compensación a tratar y obtener la hora exacta. Simplemente estrangula y no anima. Ten en cuenta que es un circuito cerrado, por lo que puede funcionar mejor si puede obtener otros cálculos, pero no estoy seguro.
Ojalá pudiera dar varias respuestas correctas, pero esta respuesta responde muy de cerca a mi primera pregunta, e incluso se realizó una prueba de unidad, que aprecio mucho. – dclowd9901