Javascript 如何立即开始投票?
我试图使用轮询进行一次小检查,每次间隔15秒Javascript 如何立即开始投票?,javascript,polling,Javascript,Polling,我试图使用轮询进行一次小检查,每次间隔15秒 setInterval(function(){ $.ajax({ url: "aaa.com", success: function(data){ showUpdate(data); }, dataType: "text"}); }, 15000); 但这意味着在投票开始之前有15秒的初始延迟,这在我的情况下是
setInterval(function(){
$.ajax({ url: "aaa.com",
success: function(data){
showUpdate(data);
}, dataType: "text"});
}, 15000);
但这意味着在投票开始之前有15秒的初始延迟,这在我的情况下是不希望的。
如何强制立即开始轮询?当简单的解决方案完成工作时,不要寻找智能解决方案:
function check() {
$.ajax({ url: "aaa.com",
success: function(data){
showUpdate(data);
}, dataType: "text"});
}
check();
setInterval(check, 15000);
或者,我通常更喜欢
function check() {
$.ajax({ url: "aaa.com",
success: function(data){
showUpdate(data);
setTimeout(check, 15000);
}, dataType: "text"});
}
check();
因为在响应延迟的情况下不会有一堆调用。如果不考虑使用回调函数来处理调用之间的延迟,最简单的方法就是将该函数移出一个命名函数,并在第一次手动调用它
function doSomething() {
$.ajax({ url: "aaa.com",
success: function(data){
showUpdate(data);
}, dataType: "text"});
}
doSomething();
setInterval(doSomething, 15000);
那就:
function immediatePoll(f, interval) {
f();
setInterval(f, interval);
}
immediatePoll(function(){
$.ajax({ url: "aaa.com",
success: function(data){
showUpdate(data);
}, dataType: "text"});
}, 15000);