Javascript: 在调用 settimeout 之前调用 cleartimeout 是可以的吗?

4 浏览
0 Comments

Javascript: 在调用 settimeout 之前调用 cleartimeout 是可以的吗?

我有一个设置定时器并在定时器到期时调用自身的函数。

我想知道的是,在函数顶部清除定时器是否是不良实践。

原因是我会不时地异步调用该函数,如果我不先清除定时器,就会有两个同时运行。

我意识到我可以在调用函数之前清除定时器,但我想知道如果我只在包含定时器的函数内部保留cleartimeout调用,是否会在任何浏览器中出现问题。

另一个想法是,我可以在进行cleartimeout调用之前测试定时器变量,以查看它是否为定时器。

下面是一些示例代码:

function onAir(){
    // 重置定时器
    clearTimeout(timer);
    $.getJSON("http://mywebsite.com?format=json&callback=?",function(data){
        if(data.result == '1'){
            在这里做一些事情
        }
        else{
            在这里做其他事情
        }   
    });
    // 启动定时器
    timer = setTimeout("onAir()",60000);
} 

感谢与我分享您的想法!

Kenny

0