例如,如果我按照
格式化我的代码<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()
一次,然后停止
答案 0 :(得分:2)
首先,不要在setTimeout中使用引号(我不确定,但我相信调用eval()
),只需通过引用传递函数:setTimeout(auto, 2000)
;
其次,JavaScript是一种动态类型语言,这意味着变量没有固定类型,并且它们可以根据具体情况而改变,因此您的代码完全有效。
最后,如果您不打算在计数时中止超时,则无需清除它,因为它会在执行后消失。