Javascript: можно ли вызывать cleartimeout перед settimeout?

У меня есть функция, которая устанавливает таймер и вызывает себя обратно по истечении таймера.

Я хотел бы знать, не считается ли сбрасывать таймер в верхней части функции плохой практикой.

Причина в том, что я буду время от времени вызывать эту функцию асинхронно, и если Я сначала не сбрасываю таймер, у меня будет два одновременно.

Я понимаю, что могу очистить таймер прямо перед тем, как сделать другой вызов функции, но мне интересно, вызовет ли это проблемы в любом браузере, если я просто сохраню вызов cleartimeout внутри функции, содержащей таймер.

Еще одна мысль - могу ли я проверить переменную таймера перед вызовом cleartimeout,чтобы узнать, таймер ли это?

Вот пример кода:

function onAir(){

    // reset timer  
    clearTimeout(timer);

    $.getJSON("http://mywebsite.com?format=json&callback=?",function(data){
        if(data.result == '1'){
            do stuff here   
        }
        else{
            do other stuff here
        }   
    });

    // start timer
    timer = setTimeout("onAir()",60000);
} 

Спасибо, что поделился со мной своим мозгом!

Кенни

16
задан glmxndr 22 June 2011 в 15:17
поделиться