我正在尝试将轮询用于以15秒的间隔执行的小型检查。
setInterval(function(){
$.ajax({ url: "aaa.com",
success: function(data){
showUpdate(data);
}, dataType: "text"});
}, 15000);
但这意味着在轮询开始之前有15秒的初始延迟,这在我的情况下是不可取的。 我如何强制立即开始投票?
答案 0 :(得分:2)
当简单的人做这项工作时,不要寻找智能解决方案:
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();
因为在延迟响应的情况下不会有一堆电话。
答案 1 :(得分:0)
没有进入一个稍微复杂的想法,即使用回调函数处理调用之间的延迟,最简单的方法是将函数移出到命名函数,并在第一轮手动调用它
function doSomething() {
$.ajax({ url: "aaa.com",
success: function(data){
showUpdate(data);
}, dataType: "text"});
}
doSomething();
setInterval(doSomething, 15000);
答案 2 :(得分:0)
如何:
function immediatePoll(f, interval) {
f();
setInterval(f, interval);
}
immediatePoll(function(){
$.ajax({ url: "aaa.com",
success: function(data){
showUpdate(data);
}, dataType: "text"});
}, 15000);