Pausing setInterval quando a página / navegador está fora de foco
Tenho uma apresentação de slides simples que fiz na página inicial de um cliente, usando setInterval para cronometrar as rotaçõe
Para evitar que os navegadores atrapalhem o setInterval quando a página não está em foco (outra guia está sendo exibida ou outro programa), estou usando:
function onBlur() {
clearInterval(play);
};
function onFocus() {
mySlideRotateFunction();
};
if (/*@cc_on!@*/false) {
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else {
window.onfocus = onFocus;
window.onblur = onBlur;
}
Where mySlideRotateFunction define o setInterval e executa alguns jQuery. Enquanto isso funciona na maior parte do tempo, acho que, de vez em quando, parece que o onBlur não foi executado e, quando volto à página, os tempos se acumulam e as rotações ficam louca
Não consigo determinar uma causa da razão pela qual isso acontece ocasionalmente, e não em outra
Minha pergunta: existe um problema com meu código e alguém tem uma sugestão melhor para 'pausar' setInterval quando a janela do navegador está fora de foco?
Obrigad