我的代码如下: 问题是当我滚动到页面的末尾时,它会多次加载数据。如果我在页面中有10个元素,并且我从“/ api / get_more_application / 10”加载数据,但在加载完成之前,jquery在dom添加到页面之前第二次将ajax发送到“/ api / get_more_application / 10”,所以也许解决方案应该如此,你不能在最后一个请求完成之前向url发送第二个请求,怎么做? THX
$(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();
};
});
});
答案 0 :(得分:1)
尝试jQuery的睡眠功能:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
调用该函数:
睡眠(1000); // 1秒