Mam funkcję, która ustawia licznik czasu i wywołuje się z powrotem po wygaśnięciu licznika czasu.JavaScript: Czy można wywołać funkcję cleartimeout przed rozliczeniem?
Chciałbym wiedzieć, czy złą praktyką jest czyszczenie timera na górze funkcji.
Powodem tego jest to, że będę wywoływał tę funkcję asynchronicznie od czasu do czasu, a jeśli nie usunę najpierw licznika czasu, będę miał dwa działające jednocześnie.
Zdaję sobie sprawę, że mogę wyczyścić licznik czasu, zanim wykonam drugie wywołanie funkcji, ale zastanawiam się, czy spowoduje to problemy w dowolnej przeglądarce, jeśli po prostu zatrzymam wywołanie funkcji cleartimeout wewnątrz funkcji zawierającej timer .
Jedna inna myśl - czy mogę przetestować zmienną licznika przed wykonaniem połączenia bezczeszczenia, aby sprawdzić, czy jest to timer?
Oto przykładowy kod:
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);
}
Dzięki za podzielenie się ze mną mózg!
Kenny
Dziękuję wszystkim za szybkie odpowiedzi! Ponadto, dziękuję za poprawienie sposobu w jaki wzywam funkcję. Nauczyłem się czegoś nowego! – Kenny