jquery无限滚动插件 - 加载和内存问题

时间:2014-01-20 15:28:36

标签: javascript jquery ajax out-of-memory infinite-scroll

我正在使用infinate滚动插件(Paul Irish)。我想在下一页加载和达到maxPage时使用自定义函数。

我已根据文档尝试了以下内容,但是这会启动加载功能但不会调用已完成的函数。当我在控制台中查看时,它不会调用下一页。我错过了什么?

    // Infinite Ajax Scroll configuration
    $container.infinitescroll({
        navSelector: "div.paginate",
        nextSelector: "div.paginate a",
        itemSelector: "div.element",
        maxPage: 5,
        loading: {
            start: function(){
                  alert('started');
            },
            finished: function(){
                  alert('finsihed loading');
            }
        }
    },
    function(newElements) {

        var $newElements = $(newElements).css({opacity: 0});
        //remove the first item
        $newElements.splice(0, 1);

            $container.isotope('appended', $newElements);

        }

    });
});

滚动可以继续浏览页面和页面,直到浏览器由于内存问题而崩溃,因此我需要在当前页面达到maxPage时停止无限滚动并允许用户选择“加载更多”按钮。希望解决内存问题。

这在下面的链接中讨论,但我找不到任何关于如何准确执行此操作的进一步文档,甚至无法使上述示例工作。

https://github.com/paulirish/infinite-scroll/issues/300

1 个答案:

答案 0 :(得分:0)

首先,确保它的最小选项(以及控制台调试消息):

$container.infinitescroll({
    navSelector: "div.paginate",
    nextSelector: "div.paginate a",
    itemSelector: "div.element",
    debug: true
});

如果是,请添加选项直到它中断。

我建议在控制台中调试启动/完成功能,如下所示:

    loading: {
        start: function(){
              console.log('started');
        },
        finished: function(){
              console.log('finsihed loading');
        }
    }

考虑添加errorCallback选项来调试ajax问题。