正确使用javascript timeOut()的方法

Correct way to use javascript timeOut()

本文关键字:方法 timeOut javascript      更新时间:2023-09-26

例如,如果我要格式化我的代码如下

<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(),然后停止

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

其次,JavaScript是一种动态类型语言,这意味着变量没有固定的类型,它们可以根据环境变化而变化,因此你的代码是完全有效的。

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