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
如果您的请求失败,它将阻止其他请求。
有没有办法在成功后不设置间隔更新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
如果您的请求失败,它将阻止其他请求。