Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

222
Views
¿Cómo maneja Chrome (y otros navegadores) un "setTimeout" establecido en más de 1000 milisegundos cuando una pestaña del navegador está oculta e inactiva?

Estoy depurando algunos problemas de inicio/cierre de sesión en un sitio mantenido por un proveedor externo para un cliente y espero que el título explique las cosas, pero hay más detalles a continuación.

Según tengo entendido, cualquier JavaScript que se ejecute en una pestaña oculta en Chrome alterará el valor de cualquier setTimeout a 1000 milisegundos para mantener el rendimiento general del sistema y no desperdiciar recursos. Como se explica en este sitio :

“Los navegadores hacen exactamente esto. Para las pestañas inactivas, aceleran automáticamente los temporizadores para que se ejecuten cada 1 segundo, independientemente del retraso original especificado en el código. Por ejemplo, si el código usaba originalmente setInterval() para ejecutar algún código cada 50 ms, una vez que la aplicación se mueve a una pestaña en segundo plano, el intervalo se convierte automáticamente en 1000 ms (1 segundo) ".

Eso definitivamente tiene sentido en el caso de un valor setTimeout que se establece en menos de 1000 milisegundos, como 50 milisegundos y demás. Pero, ¿qué pasa con los valores superiores a 1.000 milisegundos?

¿Establecerá Chrome el valor setTimeout en 1000 milisegundos aunque 900 000 milisegundos (también conocido como 900 segundos, también conocido como 15 minutos) es claramente más alto que eso?

Aquí hay un fragmento de código de la página web del proveedor que creo que está causando problemas que estoy tratando de ayudar a depurar. No hace su trabajo cuando está en una pestaña oculta.

 function keepSessionAlive() { if (externalAdminWindow && externalAdminWindow.closed) { externalAdminWindow = null; } if (externalFGWindow && externalFGWindow.closed) { externalFGWindow = null; } if (externalAdminWindow || externalFGWindow) { $find("ctl00_RadAjaxManager1").ajaxRequest("KeepAlive"); setTimeout(function() { keepSessionAlive(); }, 900000); } }
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

La mayoría de los navegadores aceleran los tiempos de espera en las pestañas inactivas. Significa que todos los setTimeout tendrán un tiempo de espera mínimo de 1000 ms. Todo lo que sea más largo que eso debería funcionar como se esperaba. Entonces, respondiendo a su pregunta, el tiempo de espera de 15 minutos no debería verse afectado.

Consulte la sección Tiempos de espera en pestañas inactivas de setTimeout en setTimeout : https://developer.mozilla.org/en-US/docs/Web/API/setTimeout#timeouts_in_inactive_tabs

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!