Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   отключение таймера(Интервала) при переходе на другую вкладку (https://javascript.ru/forum/jquery/55245-otklyuchenie-tajjmera-intervala-pri-perekhode-na-druguyu-vkladku.html)

xTODx 19.04.2015 17:32

отключение таймера(Интервала) при переходе на другую вкладку
 
Делаю слайдер, вот такая проблемма, если я сверну окно или уйду на другую вкладку, посижу там немного, и вернусь, слайдер будет матать что дурной.
Цель - очистить интервал.
Вот что сделал, работает.
Но почему иногда не пашет.
(При каких условиях интервал не останавливается)
$(window).blur(function() {
 		clearInterval(sliderTimer);
	});

$(window).focus(function() {
		sliderTimer=setInterval(nextSlide,intervals);
	});

Deff 20.04.2015 01:02

xTODx,
При первичной загрузке страницы включаем сразу(ставим флаг загрузки), далее следим за потерей - восстановлением фокуса
window.onblur = отключаем
window.onfocus = включаем
=======================
3. Подстраховать, пусть сам setInterval , внутри которого функция тестирует флаг blur
$(document).ready(function(){blur =false;});
$(window).blur(function() { blur =true; clearInterval(sliderTimer);});
$(window).focus(function() {
  blur =false;  
  sliderTimer=setInterval(function(){ if(blur){clearInterval(sliderTimer); return} ;nextSlide();}, intervals);
});

AngelW 02.10.2015 13:09

У меня в див подгружается пхп на котором находятся таймеры обратного отсчёта. Я задумал сделать в этот же див подгрузку другого пхп, если окно неактивное. Проблема в том, что при возврате в активное состояние окна, рабочий пхп загружается уже без таймеров... Станица рабочая и пхп исполняется, и кнопки, если время истекло, то появятся. И я уже не первый раз замечаю, что отдельный джаваскрипт (в тегах script) внутри $(window).focus(function() не работает... Что я делаю не так?


Часовой пояс GMT +3, время: 18:54.