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

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

Сообщение Anonymous »

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

Спасибо

Подробнее здесь: https://stackoverflow.com/questions/748 ... t-of-focus

Вернуться в «Jquery»