Ver Mensaje Individual
  #7 (permalink)  
Antiguo 18/10/2012, 19:18
edhack7
 
Fecha de Ingreso: octubre-2012
Ubicación: El Salvador
Mensajes: 8
Antigüedad: 12 años, 1 mes
Puntos: 0
Respuesta: SetTimeout me pierde presicion?

Cita:
Iniciado por marlanga Ver Mensaje
El setTimeout o el SetInterval no son exactos. Depende del tiempo de procesador que les de el navegador, mejoran o empeoran. Si minimizas el navegador, o cambias de pestaña, se ralentizan mucho. No te puedes fiar de ellos para hacer un cronómetro exacto.

Para aproximarse a la exactitud, puedes hacer lo siguiente:

var tiempo=(new Date()).getTime();

Eso te da el numero de milisegundos transcurridos desde el 1 de enero de 1970.
Luego, en cada llamada del timeout a tu funcion, en la primera linea haz:

[url]http://jsfiddle.net/marlanga/Uq4YN/[/url]

Así, en el peor de los casos, el cronómetro se ha retrasado 500 milisegundos (es decir, el tiempo que le pongamos al timeout). Si quieres mas precision, ponle menos tiempo. Sin embargo, consumirá mas CPU (y en un teléfono móvil eso supone consumir antes la batería).
Voy a probar lo que me dices, gracias por la info