Javascript JQuery无限卷轴-“;“加载更多”;达到最大页面限制后

Javascript JQuery无限卷轴-“;“加载更多”;达到最大页面限制后,javascript,jquery,infinite-scroll,Javascript,Jquery,Infinite Scroll,我正在使用这个无限滚动插件:但由于我有很多页面,而且浏览器由于内存问题而崩溃,我想在无限滚动这么多页面之后,比如谷歌图片、推特和其他应用程序,实现一个“加载更多”按钮 因此,当当前页面到达maxPage时,我需要停止无限滚动,并允许用户选择“加载更多”按钮。希望能解决内存问题 我知道其他插件也会这样做,但我没有更改插件的选项,因此需要能够在达到maxPage限制时创建自定义函数。这在下面的链接中进行了讨论,但我找不到任何关于如何做到这一点的进一步文档 我根据文档尝试了以下代码。加载图像从每页滚

我正在使用这个无限滚动插件:但由于我有很多页面,而且浏览器由于内存问题而崩溃,我想在无限滚动这么多页面之后,比如谷歌图片、推特和其他应用程序,实现一个“加载更多”按钮

因此,当当前页面到达
maxPage
时,我需要停止无限滚动,并允许用户选择“加载更多”按钮。希望能解决内存问题

我知道其他插件也会这样做,但我没有更改插件的选项,因此需要能够在达到
maxPage
限制时创建自定义函数。这在下面的链接中进行了讨论,但我找不到任何关于如何做到这一点的进一步文档

我根据文档尝试了以下代码。加载图像从每页滚动到最后开始,然后在到达第5页时显示“加载更多”消息,但出现警报(“加载更多”);在每一页上激活,而不是在最后一页上激活。有人能建议我在到达maxpage时创建自定义函数需要做什么吗?或者其他解决内存问题的方法

    // Infinite Ajax Scroll configuration
    $container.infinitescroll({
        navSelector: "div.paginate",
        nextSelector: "div.paginate a",
        itemSelector: "div.element",
        maxPage: 5,
        loading: {
          finishedMsg: 'Load More',
          msgText: " ",
          img: 'public/img/ajax-loader.gif',
          finished: function(){
               alert('finished');
          }

        }
    },
    function(newElements) {

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

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

    }

});

另一个帖子是属于我的:,这和我几天前悬赏的问题是一样的,所以如果你能解决这个问题,我也会用悬赏奖励你;)

尝试这样更改代码,以便每次加载内容时都增加一个计数器,并在添加更多内容之前检查计数器是否未达到某个值

var cLoaded = 0, iMyLoadLimit = 5;

    // Infinite Ajax Scroll configuration
    $container.infinitescroll({
        navSelector: "div.paginate",
        nextSelector: "div.paginate a",
        itemSelector: "div.element",
        maxPage: 5,
        loading: {
          finishedMsg: 'Load More',
          msgText: " ",
          img: 'public/img/ajax-loader.gif',
          finished: function(){
               alert('finished');
          }

        }
    },
    function(newElements) {
        if(cLoaded < iMyLoadLimit){

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

            $container.isotope('appended', $newElements);
        }
        cLoaded++;
    }

});
var cLoaded=0,iMyLoadLimit=5;
//无限Ajax滚动配置
$container.infinites卷({
导航选择器:“div.paginate”,
下一个选择器:“div.paginate a”,
项目选择器:“div.element”,
maxPage:5,
装载:{
FinishedMg:“加载更多”,
msgText:“”,
img:'public/img/ajax loader.gif',
已完成:函数(){
警报(“完成”);
}
}
},
函数(新元素){
if(cLoaded
查看插件代码,
\u中的这一行显示EMSG

// user provided callback when done
opts.errorCallback.call($(opts.contentSelector)[0],'done');
似乎表明在达到最大值时调用了
errorCallback

也许您可以使用它删除以前的DOM内容,然后继续滚动。

它是无限滚动初始化的一部分,因此您可以在输出返回的内容之前对其进行操作。所以我基本上得到了新的元素,并用同位素添加到屏幕上。在文档中,它展示了如何做到这一点:好吧,那么我真的不需要完成的函数或“maxPage”选项设置?我想你是建议我在回调函数中添加more按钮等的所有代码?这是有道理的,但是问题只解决了一半,因为当我为“更多”按钮添加代码时,会发生什么来帮助解决内存问题?如果你不断地向DOM中添加内容,你会慢慢地处理内存问题(当然,加载的内容会有很大的不同)。如何处理这是一个独立的问题,也是使用无限滚动的一个缺点。您可能会拼接很久以前加载的内容(因此添加新内容时,旧内容就会消失),使DOM保持在大致的最大值。好吧,所以我错误地认为加载更多按钮是解决方案?在阅读了文档和我发布的链接到()的讨论之后,它看起来好像用laod more按钮实现“maxPage”就是答案,我的问题是如何实际实现他们讨论的解决方案……我根据您的建议进行了扩展,成功地使其工作。谢谢你。。我需要一个用于TumblRy的无限滚动工具的实际javascript,您可以从这里下载:,但是文档不是很好…因此,我为什么如此卡住:-/非常感谢!我从来没有找到可以嵌入的原始JS——只是指向其他人网站的链接,这些链接总是会在某个随机点死掉并破坏我的页面>\u>祝你好运。没问题,希望你能让它工作。我尝试过删除以前的页面,但它造成了问题,留下了空白,并导致scoll栏出现奇怪的行为。所以我的结论是,在到达maxPage之后,只需在所有后续页面中添加一个更多的按钮。但是,我不知道如何实现这一点。在达到最大值时显示“加载旧页面”消息,然后加载整个页面,并将
状态设置为
maxPage
?我只需要加载更多按钮。我已经在很多网站上看到了这个功能,并且知道它是在其他无限滚动插件上实现的,所以它一定是相对容易实现的。我不认为这个特定的插件不经过一些修改就可以解决你的问题。在到达maxPage后,您似乎希望自动加载系统更改为手动加载系统。我也不认为这会对记忆问题有什么帮助。