Приостановка 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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