ajax不设置interval成功后更新数据内容

ajax update data content after success without setinterval

有没有办法在成功后不设置间隔更新ajax数据内容 它使我的浏览器非常慢 这是我的代码

setInterval(function(){
var ajaxurles = "<?php echo admin_url('admin-ajax.php'); ?>";
$.ajax({
     type: "GET",
     url: ajaxurles,
     data:'action=ajax_statics&post_id=<?php echo $post->ID; ?>',
     success:function(data){
    $(".loadajaximge").hide();
    $('.inajaxupdates').empty();
    $(".inajaxupdates").append(data);
    }               
    });
    },9000);

只使用这么多代码,当你想在成功回调后追加内容时不需要设置间隔,直到并且除非你想使用间隔一次又一次地进行 ajax 调用.使用以下代码:

ajaxurles = "<?php echo admin_url('admin-ajax.php'); ?>";
$.ajax({
     type: "GET",
     url: ajaxurles,
     data:'action=ajax_statics&post_id=<?php echo $post->ID; ?>',
     success:function(data){
    $(".loadajaximge").hide();
    $('.inajaxupdates').empty();
    $(".inajaxupdates").append(data);
    }               
    });

已编辑:

ajaxurles = "<?php echo admin_url('admin-ajax.php'); ?>";
setInterval(function(){
$.ajax({
     type: "GET",
     url: ajaxurles,
     data:'action=ajax_statics&post_id=<?php echo $post->ID; ?>',
     success:function(data){
    $(".loadajaximge").hide();
    $('.inajaxupdates').empty();
    $(".inajaxupdates").append(data);
    }               
    });
    },9000);

那将需要使用 setInterval or setTimeout。但是setTimeout会比setInterval好,因为setInterval,如果你之前的ajax请求没有完成,你再发起一个请求,就会有多个请求,会早点出问题。 你可以做的是,使用 setTimeout,例如:

(function doSomeRequest() {
  $.ajax({
     type: "GET",
     url: ajaxurles,
     data:'action=ajax_statics&post_id=<?php echo $post->ID; ?>',
     success:function(data){    
        $(".loadajaximge").hide();
        $('.inajaxupdates').empty();
        $(".inajaxupdates").append(data);
     },
     complete: function() {
         //call the 'doSomeRequest' when current one is complete
         setTimeout(doSomeRequest, 9000);
     }
  });
})();

但是 setTimeout 如果您的请求失败,它将阻止其他请求。