我想用ajax和setInterval函数自动刷新"result"div。
但有一个问题。我希望在 500 毫秒内自动刷新,但有时 ajax 加载超过 500 毫秒。在这种情况下包含问题。我想如果 ajax 加载时间 750ms,那么间隔时间 750(或任何更长的时间 500ms)否则 500。我该怎么做?
var refreshId = setInterval(function()
{
var number=$("#number").html();
$.ajax({
type: 'GET',
url: 'ajax.php',
data: 'num='+number,
success: function(ajaxResult) {
$('#result').html(ajaxResult);
}
});
if(number<100){
number++;
$("#number").html(number);
}
}, 500);
使用 setTimeout
而不是 setInterval
。在 ajax 响应函数中设置超时函数,同步服务器调用不会有问题。
(function pollStep(){
var number=$("#number").html();
$.ajax({
type: 'GET',
url: 'ajax.php',
data: 'num='+number,
success: function(ajaxResult) {
$('#result').html(ajaxResult);
setTimeout(pollStep, 500);
}
});
if(number<100){
number++;
$("#number").html(number);
}
})();
在成功函数中尝试条件。
success: function(ajaxResult) {
$('#result').html(ajaxResult);
if(number<100){
number++;
$("#number").html(number);
}
}