有没有setinterval在scucess之后更新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);
答案 0 :(得分:1)
这需要使用setInterval或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
会阻止其他请求。
答案 1 :(得分:0)
仅使用代码的这么多部分,在成功回调后想要追加内容时不需要setinterval,直到除非你想使用间隔再次进行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);