jQuery无限滚动双重加载

时间:2012-10-06 16:31:07

标签: jquery scroll

我正在使用带有这些代码的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 ..... ...

那我错在哪里?感谢...

1 个答案:

答案 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;
            });
        }
    });