正确使用javascript timeOut()的方法

时间:2013-03-12 19:10:08

标签: javascript timeout

例如,如果我按照

格式化我的代码
<script type="text/javascript">
    var timeout;
    function auto() {
        $.ajax({
                url: "functions/ajax.php",
                data: "func=auto",
                type: "GET",
                dataType: "json",
                success: function(data){
                       $.each(data.search, function (i, v) {
                               console.log('Success ' + v);
                       });
                },
                error: function (jqXHR, textStatus, errorThrown){
                       console.log('Error ' + jqXHR);
                }
        });
     }

    function start() {
    timeout = setTimeout('auto()', 2000);
    }

    function stop(){
        clearTimeout(timeout);
}
</script>

我的var timeout没有被值定义是否重要?由于实际超时不是偶数处理,它运行函数auto()一次,然后停止

1 个答案:

答案 0 :(得分:2)

首先,不要在setTimeout中使用引号(我不确定,但我相信调用eval()),只需通过引用传递函数:setTimeout(auto, 2000);

其次,JavaScript是一种动态类型语言,这意味着变量没有固定类型,并且它们可以根据具体情况而改变,因此您的代码完全有效。

最后,如果您不打算在计数时中止超时,则无需清除它,因为它会在执行后消失。