Búsqueda de sitios web

javascript - Cronómetro Eficiente


Hola, estoy programando una utilidad de cronómetro en JavaScript y tengo una pregunta sobre eficiencia y sobrecarga. Hay dos formas que he considerado para hacer el cronómetro:

1. Almacenar una fecha de inicio y medir constantemente el número de milisegundos que han pasado desde esa fecha.

2. Crea un entero y aumenta su valor a intervalos establecidos.

Quiero saber cuál es más eficiente. Además, no estoy seguro de si la opción #2 sería muy precisa, si alguien tiene algún comentario sobre esto, también sería genial.

Respuesta #1

Como otros han dicho, ve con el #1. Si quieres un reloj que haga tictac cada segundo (o minuto o lo que sea) deberías estimar el tiempo hasta el siguiente "tictac" para que setTimeout se llame unos pocos ms después del momento adecuado, por ejemplo, para ejecutarse justo después del siguiente segundo completo:

var d = new Date();
var interval = 1020 - d.getMilliseconds();
setTimeout(fn, interval);

De esa manera, si la ejecución de una llamada se retrasa debido a que el sistema está ocupado, la siguiente aún debería llamarse aproximadamente 20 ms después del siguiente segundo completo.

Respuesta #2

La opción 2 no será precisa, especialmente si tienes una página con JavaScript adicional para otros fines. Opta por el primer enfoque.