Estoy creando una página web con contenido dinámico que ingresa a la vista con el sondeo AJAX. La página JS ocasionalmente descarga información actualizada y la muestra en la página mientras el usuario está leyendo otra información. Este tipo de cosas es costoso para el ancho de banda y el tiempo de procesamiento. Me gustaría tener la pausa de votación cuando la página no se está viendo.¿Cómo saber si el usuario está leyendo actualmente una página con Javascript?
Me he dado cuenta de que la mayoría de las páginas web que tengo abiertas pasan la mayor parte de su tiempo minimizadas o en una pestaña no vista. Me gustaría poder detener las secuencias de comandos hasta que la página realmente se esté viendo.
No tengo ni idea de cómo hacerlo, y parece estar tratando de salir del arenero del html DOM y alcanzar el sistema del usuario. Puede ser imposible, si el motor JS no tiene conocimiento de su entorno de renderizado. Nunca he visto un sitio diferente hacer esto (no es que el usuario tenga la intención de verlo ...)
Creo que es una pregunta interesante para el debate. ¿Cómo escribirías una aplicación web con una CPU pesada para pausar cuando no se está utilizando? Darle al usuario un botón de pausa no es confiable, me gustaría que sea automático.
Desearía un mecanismo para reiniciar las actualizaciones cuando se reanude la actividad. – Benry
Simplemente agregue eso a la función onmouseover (vea la respuesta actualizada) –
¿No arrastrará el mouse por la pantalla una vez causará aproximadamente mil llamadas cleartimeout() setTimer()? ¿Está bien hacerlo? – Karl