setTimeout显示重新加载div之前剩余的时间--AJAX

时间:2014-04-11 05:08:56

标签: javascript ajax settimeout

我正在做一个脚本,在加载失败后的7秒内重试AJAX脚本。 有没有办法在setTimeout中显示timeleft?

这是我的基本脚本:

function update() {
    $.ajax({
        type: 'GET',
        url: 'messageContent.php',
        timeout: 1000,
        success: function (data) {
            $("#chatBox").html(data);
            document.getElementById('messages').scrollTop = document.getElementById('messages').scrollHeight;
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            var d = document.getElementById("loadcon");
            d.innerHTML = '<div class="loadingAnimation"><h3 class="status">Reconnecting...</h3></div>';
            setTimeout (update, 7000);
        }
   });
}

1 个答案:

答案 0 :(得分:2)

尝试使用函数来执行计时器并在处理程序上调用它

像这样:

 function startCounter(timeLeft) {
      if (timeLeft > 0) {

        ..display timeLeft

       setTimeout (function() {startCounter(timeLeft-1); }, 1000);
       }
      else{

        ..your function to retry

       }
     }

希望有所帮助:)