我正在使用带有这些代码的jquery.window.scroll函数的无限加载。
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
var page = $('#lastPostsLoader').attr('page')*1;
$('#lastPostsLoader').attr('page', page + 1);
DataLoadFunction(page);
}
});
但这些代码在滚动到底部时请求双倍时间,有时甚至是假页面。像这样;
滚动底部--->加载第1页并加载第2页--->滚动底部--->加载第3页并加载第2页--->滚动底部--->加载第4页加载页面5 ..... ...
那我错在哪里?感谢...
答案 0 :(得分:4)
你应该阻止dataload直到下一个数据到达。将数据从服务器加载时,将变量isLoadingData设置为true。
var isLoadingData;
$(window).scroll(function(){
if (($(window).scrollTop() == $(document).height() - $(window).height()) && !isLoadingData ){
isLoadingData = true;
var page = $('#lastPostsLoader').attr('page')*1;
$('#lastPostsLoader').attr('page', page + 1);
DataLoadFunction(page, function(){ // callback get called after data load
isLoadingData = false;
});
}
});