3

几周前,我用 jquery 实现了一个无限滚动页面。滚动本身效果很好,但我得到了一个非常奇怪的副作用。

当我滚动并加载新内容时,前几秒钟没有任何链接起作用。事实上,页面上的任何链接都不会在几秒钟内起作用。而且,如果我滚动得很远,例如连续快速加载 5 个页面,情况似乎会变得更糟——然后我必须等待 20 秒才能点击页面上任何位置的任何链接。

我在使用 Firefox 或 IE8 时也有同样的体验,所以我猜这不是浏览器。

任何想法是什么原因或解决方法是什么?

4

1 回答 1

0

还是有这个问题?

问题:

  • 页面加载 20 秒后,链接是否可点击?浏览器是“冻结”了 20 秒还是只是无法点击的链接?
  • 要加载更多内容,是显示“显示更多”的链接,还是在用户点击页面底部时自动加载内容?
  • 您是否使用 jQuery 的 .scroll() 来更新内容?

初步想法:

  • 您是否对不可点击的链接使用 .click() 或 .bind('click', function )?尝试 .live('click', function ) 代替。
  • 尝试使用 setTimeout。对于某些浏览器,jQuery 的 .scroll 会在滚动条更改的每个像素中调用处理函数……一旦完成所有滚动,这可能会导致函数调用过载。尝试这样的事情,它不会在您滚动时执行 1000 次函数调用(这只是一个简单的示例......代码可能会更好):

    <script type="text/javascript">
        var scrolling = false;
        $(document).scroll('setScroll');
    
        function setScroll() {
            scrolling = setTimeout(doScrollUpdate, 300);
        }
    
        function doScrollUpdate() {
            clearTimeout(scrolling);
            // Do your ajax stuff here
        }
    </script>
    
于 2012-01-19T08:16:25.903 回答