0

我想用 ajax 和 setInterval 函数自动刷新“结果”div。

但是有一个问题。我想在 500 毫秒内自动刷新,但有时 ajax 加载超过 500 毫秒。在这种情况下包含问题。我想如果 ajax 加载时间为 750 毫秒,则间隔时间为 750(或任何时间更长的 500 毫秒),否则为 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);
4

2 回答 2

1

尝试成功函数中的条件。

   success: function(ajaxResult) {
      $('#result').html(ajaxResult);
      if(number<100){
        number++;
        $("#number").html(number);
        }
    }
于 2012-05-05T18:06:37.463 回答
1

使用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);
        }
     })();
于 2012-05-05T18:26:14.263 回答