bin*_*in0 5 ajax jquery intervals
我正在尝试将AJAX函数更新大约30秒.我有一个简单的版本,这是代码.
var refInterval = window.setInterval('update()', 30000); // 30 seconds
var update = function() {
$.ajax({
type : 'POST',
url : 'post.php',
success : function(data){
$('.voters').html(data);
},
});
};
Run Code Online (Sandbox Code Playgroud)
但是,当这个功能被FIRST调用时,我不希望它等待30秒,我只想要调用该函数,然后等待30秒,再次调用,等待30秒,再次调用,等等任何帮助?
Aln*_*tak 12
考虑使用setTimeout
- 它更可靠. setInterval
当窗口没有焦点时,计时器可以堆叠,然后当它再次聚焦时,所有计时器都会立即运行.setTimeout
如果由于某种原因第一个阻止排队,使用还可以确保您不会获得排队的多个AJAX请求.
要立即启动循环,请使用围绕该函数的IIFE("立即调用的函数表达式"):
(function update() {
$.ajax({
... // pass existing options
}).then(function() { // on completion, restart
setTimeout(update, 30000); // function refers to itself
});
})(); // automatically invoke for first run
Run Code Online (Sandbox Code Playgroud)
ps不使用字符串参数setInterval
或setTimeout
- 只是直接传递函数引用.
归档时间: |
|
查看次数: |
20773 次 |
最近记录: |