Сообщение от 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 функция продолжала парсить сообщения. Вопрос - что я сделал не так?