在Pinterest中以编程方式禁用延迟加载或使用jQuery无限滚动?

时间:2015-02-15 11:21:52

标签: lazy-loading jquery-masonry infinite-scroll eager-loading pinterest

注意:此论坛的新功能(用户体验/用户体验),请告知我这是否会在其他类别中更好。我在Stack Exchange上搜索了#34; pinterest"而这个论坛似乎有最大的成果。谢谢!

你好。我正在编写一个jQuery要点,以获取固定在Pinterest中给定板的所有图像的链接。但是,由于所有结果都没有显示在同一页面上,我一直遇到不得不反复滚动的问题。随着时尚"无限滚动"或者"懒惰负载"功能,必须保持滚动到底部,而不知道它们是否在任何地方接近,因为它似乎取决于您的浏览器窗口中的缩放百分比和窗口大小,以及屏幕上显示的项目数量。我一直在搜索这几个小时无济于事。

我已经完成的搜索会继续返回非生产性结果

搜索

时得到的结果
   "Pinterest how to disable lazy loading" and "Pinterest how to disable infinite scroll"

不断返回与我正在寻找的相反 - 我的目的的错误结果是:

 "How to add infinite scroll to my website",
 "20 Useful Pinterest Tools",
  or anything to do with adding infinite scroll.

问题:无限滚动/延迟加载使我很难使用浏览器插件,如jquerify(Chrome)和FireQuery(Firefox)

对我来说,问题是我希望能够同时查看给定电路板上的所有引脚。然后我可以使用jQuery来操作页面上的所有图像。目前,无限滚动使我很难跟踪我所处的位置。我已经在深夜尝试了一些东西并且很难记住一切。重要的发现是,在页面源代码中,Pinterest正在使用" lazy"功能。这是我发现的:

P.lazy = {
  onImageLoad: function(a) {
    var b = LOADED_CLASS;
    P.overlap.isOverlappingViewport(a) && (b += FADE_CLASS);
    a.className += b
  }
};

这刚刚开始成为一个更深的兔子洞。我已检查插件是否为"删除","禁用"或"绕过"延迟加载,但是没有发现任何......只是添加它的那些。

提前感谢您的帮助和干杯。

1 个答案:

答案 0 :(得分:1)

Pinterest通过Ajax加载卡片。当您滚动到页面底部时,浏览器javascript会触发Ajax调用以加载下一页充满卡片。

这意味着无法“禁用”无限滚动功能。 一些可能的方法:

  1. 根据您实例化浏览器的方式,您可以尝试将窗口尺寸设置或欺骗到非常大的高度。 Pinterest可以检测到该高度,并尝试加载一个窗口的图像,这可能足以覆盖你想要刮去的饲料。

  2. 如果#1对您不实用,您可以使用javascript / jquery继续向下滚动浏览器,直到它完成加载所有图像。有几种方法可以做到这一点,因为你是在浏览器会话中注入javascript (a)您可以使用设置超时(setTimeout)的循环“dumb”方式执行此操作,然后滚动到底部(scrollTo()),然后继续前进,直到窗口停止滚动并且包含页面加载底部的kludgey自动检测。

  3. (b)更复杂的方法是为pinterest的ajax加载函数实现一个监听器(参见代码,但它是对URL https://www.pinterest.com/resource/UserHomefeedResource/get/的GET请求)。 ajaxComplete() jQuery处理程序可以帮助您检测页面加载请求的完成情况,以便您可以抓取加载的新图像。

    希望有所帮助