Tengo una presentación de diapositivas simple que he hecho en la página de inicio de un cliente, usando setInterval para sincronizar las rotaciones.Pausando setInterval cuando la página/navegador está fuera de foco
Para evitar que los navegadores para atornillar setInterval cuando la página no está en el foco (se está viendo otra pestaña, u otro programa), estoy usando:
function onBlur() {
clearInterval(play);
};
function onFocus() {
mySlideRotateFunction();
};
if (/*@[email protected]*/false) {
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else {
window.onfocus = onFocus;
window.onblur = onBlur;
}
Dónde mySlideRotateFunction establece el setInterval y corre algo de jQuery Si bien esto funciona la mayoría de las veces, me parece que, en ocasiones, parece que en Blur no se ha ejecutado, y cuando regreso a la página los tiempos se han "acumulado" y las rotaciones se vuelven locas.
No puedo determinar una causa de por qué sucede esto en ocasiones, y no en otras.
Mi pregunta: ¿hay un problema con mi código, y alguien tiene una mejor sugerencia para 'pausar' setInterval cuando la ventana del navegador está desenfocada?
Gracias
Me encontré con el mismo problema que hace un tiempo que estaba trabajando en un proyecto: intentamos arreglar ese "error" molesto ... pero al final usamos el código tal como era ... porque podemos se reproduce cuando ocurre este comportamiento extraño :( +1 con suerte hay alguien por ahí con una solución :) – walialu