У меня есть функция, которая устанавливает таймер и вызывает себя по истечении таймера.
То, что я хотел бы знать, - это плохая практика очистки таймера в верхней части функции.
Причиной этого является то, что я буду асинхронно вызывать эту функцию время от времени, и если я сначала не очищу таймер, у меня будет два одновременных запуска.
Я понимаю, что я могу очистить таймер прямо перед тем, как сделать другой вызов функции, но мне интересно, вызовет ли это проблемы в любом браузере, если я просто сохраню вызов 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);
}
Спасибо, что поделились своим мозгом со мной!
Kenny