我的Ajax中有以下代码,它在时间用完时执行页面重新加载功能。
if(time<=0)
{
$(".time_remaining").html("Reloading the page now.");
refresh();
}
refresh()如下:
function refresh() {
$.ajax({
type: 'POST',
url: 'index.php',
data: 'refresh=true',
timeout: 0,
success: function(data) {
$("#current_body").html(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
$("#notice_div").html('Error contacting server. Retrying in 60 seconds.');
window.setTimeout(update, 60000);
}
});
};
有时代码不会更新,而是更新,但内容与之前相同(内容每次都会更改)。我认为这可能是由于index.php运行得不够快,但是Ajax正忙着执行
$("#current_body").html(data);
线。我可以这样做,以便Ajax在发送数据和打印结果之间延迟吗?
答案 0 :(得分:2)
{/ 1}}回调只会在服务器返回有效响应后触发。
success
所以不,它与服务器速度无关。
答案 1 :(得分:0)
成功函数将一直等到ajax请求完成加载。您遇到的问题可能是缓存。在您的选项中设置cache:false,它应该没问题:)
编辑/ **以使其更有意义** /
答案 2 :(得分:0)
尝试将index.php更新为“index.php?t =”+(new Date())。getTime()以查看是否会破坏可能导致其返回相同内容的任何缓存。