Приостановка setInterval, когда страница / браузер не в фокусе

У меня есть простое слайд-шоу, которое я сделал на домашней странице клиента, используя 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, когда окно браузера не в фокусе?

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос