有没有办法在没有设置间隔的情况下更新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);发布于 2015-06-26 04:32:46
这需要使用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,如果您的请求失败,那么它将阻止其他请求。
发布于 2015-06-26 03:38:06
只使用代码的这一大部分,当您想在成功回调之后追加内容时,不需要设置时间间隔,直到并且除非您想一次又一次地使用一个间隔进行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);https://stackoverflow.com/questions/31064468
复制相似问题