Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

224
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda