Показать сообщение отдельно
  #6 (permalink)  
Старый 18.08.2015, 14:35
Аспирант
Отправить личное сообщение для VolodinAS Посмотреть профиль Найти все сообщения от VolodinAS
 
Регистрация: 24.11.2012
Сообщений: 44

Сообщение от Deff Посмотреть сообщение
VolodinAS,
Выносите определение переменной до подгружаемых блоков
Или создайте объект на window window.Myvar = {} , и к нему привязывайте глобальные передаваемые переменные
Вне подгружаемого:
Myvar.tid1 = false;Myvar.tid2 = false;

Внутри:
clearInterval(Myvar.tid1);
Myvar.tid1 = setInterval(fu, 100)
Итак, начну с того, что я собрал всевозможные таймеры на своих страницах, дал им имена, откорретировал, сделал так, чтобы у них был только 1 запуск даже после перезагрузки.
Создал отдельный js-файл, там прописал объект TIMERS и через TIMERS.имя_таймера прописал false.

Теперь основная история. У меня каждые 5 секунд идет запрос на файл, который отдает юзеру кол-во старых сообщений в чате и количество того, что он прочитал. Если есть разница - подгрузить недостающие. setInterval на эту вещь прописан.
В самом низу страницы прописал функцию, которая перебирала объект TIMERS и выводила через console.log() все переменные объекта TIMERS, не равные false.
Также, создал еще одну функцию, которая переходит в другой раздел. Там я прописал clearInterval для этой функции:
function startGame(par){
	if (par == 1){
		$('#dark').show(1000);
		$('#newgame').show(1000);
		$('#interface').hide(1000);
	} else {
		if (par == 2){
			var data = $('#startNewGame').serialize();
			$('#dark').hide(1000);
			$('#newgame').hide(1000);
			clearInterval(TIMERS.checkNewMessanges); // удалить таймер проверки новых сообщений
			TIMERS.bidSelector = false;
			TIMERS.gameSelector = false;
			TIMERS.checkNewMessanges = false;
			loadPage('startGame<?=$pvp?>',data);
		} else {
			if (par == 3){
				$('#dark').hide(1000);
				$('#newgame').hide(1000);
				$('#interface').show(1000);
			}
		}
	}
}


И вот, когда я перешел, я увидел в консоли это:
Код:
---
TIMERS.checkNewMessanges: 9611
TIMERS.logtimers: 8
, а во вкладке Network функция продолжала парсить сообщения. Вопрос - что я сделал не так?
Ответить с цитированием