0
我的代碼如下: 問題是當我滾動到頁面的結尾時,它會加載數據很多次。如果我在頁面中有10個元素,並且我加載來自「/ api/get_more_application/10」的數據,但在加載完成之前,jquery會在dom添加到頁面之前第二次將ajax發送到「/ api/get_more_application/10」,所以解決方案應該可以在最後一次請求完成之前,不會再向url發送第二個請求,該怎麼做? THX如何設置ajax加載的延遲
$(document).ready(function(){
var window_height = $(window).height();
var i = 1;
$(window).scroll(function() {
var page_height = $(document.body).height();
var scroll_top = $(window).scrollTop();
var delta = page_height-window_height-scroll_top;
if(delta<100){
random_number = Math.random();
dom_num = $(".item").size();
$.get("/api/get_more_application/"+dom_num+"?"+random_number,function(data,status){
var json_data = jQuery.parseJSON(data);
data_list_length = json_data.data_list.length;
if (data_list_length === 0){
$(".nodata").show();
}
$.each(json_data.data_list,function(){
var dict_data = {
"admin": admin,
"id": this.id,
"limit_save_number": this.limit_save_number,
"employeeid": this.employeeid,
"appname": this.appname,
"filetype": this.filetype,
"applicant_im": this.applicant_im,
"onlinestor_quota": this.onlinestor_quota,
"employee": this.employee,
"apply_content": this.apply_content
};
$.get("approveditem.html",function(html_data,status){
replaced_str = html_data.replace(/<<(\w+?)>>/g,function($0,$1){
var value = dict_data[$1];
return value;
});
$("#items_container").append(replaced_str);
})
});
});
auto_data_set();
};
});
});
是否有更好的辦法嗎?如果只是設置一個超時,如果網絡是非常糟糕的,它會加載數據很長一段時間,並會出現一些錯誤 – young001
睡眠會在頁面上的一些攤位,它使網絡嚴重 – young001
是的,我看到你的問題。這可能是您的解決方案: http://stackoverflow.com/questions/16956116/is-it-possible-to-run-code-after-all-ajax-call-completed-under-the-for-loop-stat http://api.jquery.com/jQuery.when/ –