我有一个poll()
功能:
$("document").ready(function(){
poll(10);
$("#refresh").click(function(){ poll(10); });
});
function poll(timeout){
return setTimeout(function(){
if (timeout == 10){
timeout = 10000;
}
$.ajax({ url: "/ajax/livedata.php", success: function(data){
$("#result").html(data);
poll(timeout);
}, dataType: "json"});
}, timeout);
}
那么,那里会发生什么:
1) 在页面加载时,poll()
调用并开始执行循环。
2)在#refresh
点击poll()
时,立即调用以立即请求新数据。
问题:每当我点击#refresh
请求新数据时,poll()
都会再次调用,但多次触发(第一次初始+每次新点击)。因此,它不是按预期每 10 秒触发一次,而是每 10 秒触发多次(取决于我点击了多少次#refresh
)。
我该如何解决这个问题,以便每当我单击时#refresh
,只有 1 个实例会循环?