让jQuery等待

时间:2012-02-19 15:35:20

标签: jquery ajax delay

我的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在发送数据和打印结果之间延迟吗?

3 个答案:

答案 0 :(得分:2)

{/ 1}}回调只会在服务器返回有效响应后触发

success

所以不,它与服务器速度无关。

答案 1 :(得分:0)

成功函数将一直等到ajax请求完成加载。您遇到的问题可能是缓存。在您的选项中设置cache:false,它应该没问题:)

编辑

/ **以使其更有意义** /

答案 2 :(得分:0)

尝试将index.php更新为“index.php?t =”+(new Date())。getTime()以查看是否会破坏可能导致其返回相同内容的任何缓存。