У меня есть простое слайд-шоу, которое я сделал на домашней странице клиента, используя setInterval для определения времени поворотов.
Чтобы браузеры не испортили setInterval, когда страница не в фокусе (другая вкладкапросматривается, или другая программа), я использую:
function onBlur() {
clearInterval(play);
};
function onFocus() {
mySlideRotateFunction();
};
if (/*@cc_on!@*/false) {
document.onfocusin = onFocus;
document.onfocusout = onBlur;
} else {
window.onfocus = onFocus;
window.onblur = onBlur;
}
Где mySlideRotateFunction устанавливает setInterval и запускает некоторые jQuery.Хотя это работает большую часть времени, я нахожу, что иногда кажется, что onBlur не запускается, и когда я возвращаюсь на страницу, время «нарастает», и вращение сходит с ума.
Я не могу точно определить причину, по которой это происходит иногда, а не у других.
Мой вопрос - есть ли проблема с моим кодом, и есть ли у кого-нибудь лучшее предложение для «приостановки»'setInterval, когда окно браузера не в фокусе?
Спасибо