我正在尝试在文档加载并每20秒运行一次时使我的AJAX工作。我该怎么做呢?我已经让它每20秒工作一次但是在文档加载时无法工作。任何帮助都会很棒。
<script type="text/javascript" language="javascript">
window.setInterval(function(){
var jobid = $('#jobid').text();
var filename = $('#filename').text();
$.ajax({
url: "../progress_bar.php",
type:'POST',
data: {"value1": jobid, "value2": filename},
dataType: 'json',
success: function(responce){
$("#progress").html(responce);
} // End of success function of ajax form
}); // End of ajax call
}, 20000);
</script>
由于
答案 0 :(得分:2)
对于ajax请求,应始终使用递归超时而不是间隔(因为请求可能比间隔持续更长时间,因此一次完成多个请求),这也解决了主要问题:
//may wrap the whole thing into an onload listener
(function update(){
$.ajax({
url: "../progress_bar.php",
type:'POST',
data: {"value1": jobid, "value2": filename},
dataType: 'json',
success: function(responce){
$("#progress").html(responce);
//update again in 20secs:
setTimeout(update, 20000);
}
});
})(); //start immeadiately
一个小型演示:
console.log("load");
(function next(){
console.log("run");
setTimeout( next, 1000);
})()
&#13;