Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

196
Vistas
Temporizador preciso en Nodejs

Estoy creando una aplicación de ajedrez en vivo y estoy tratando de agregarle un temporizador. Sin embargo, estoy luchando por encontrar una manera de hacer que el temporizador sea preciso. Realicé algunas pruebas, y setInterval y setTimeout son extremadamente imprecisos, con un tiempo de espera de diez minutos con una diferencia de más de tres minutos. También intenté usar setInterval con un intervalo de 100 ms, pero incluso eso se desactivó por más de un minuto, cuando la pestaña no estaba activa. Eso fue solo con javascript window.setInterval ; con nodejs, no ha habido más de 10 ms, pero me temo que lo hará si el servidor está ocupado. Espero encontrar una manera de que el juego termine en al menos una décima de segundo del tiempo real.

¿Alguna sugerencia? ¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

un enfoque ideal sería usar el tiempo de reloj absoluto para obtener el tiempo transcurrido y el temporizador para tener esa verificación.

Algo así como el código de abajo.

 const startTime = new Date(); const maxTime = 5 * 1000; // 60 seconds setInterval(() => { checkExpired(); }, 300); function checkExpired() { const curTime = new Date(); timeDifference = Math.abs(curTime.getTime() - startTime.getTime()); if (timeDifference > maxTime) { console.log("time up"); } }

El navegador no ejecutará setInterval según sea necesario debido a razones de rendimiento. https://usefulangle.com/post/280/settimeout-setinterval-on-inactive-tab

Si necesita ejecutar el temporizador con el intervalo requerido, puede ejecutarse en el subproceso de trabajo.

algo de información aquí. ¿Cómo puedo hacer que setInterval también funcione cuando una pestaña está inactiva en Chrome?

Pero supongo que una mayor granularidad está bien para una pestaña no activa.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda