几周前,我用 jquery 实现了一个无限滚动页面。滚动本身效果很好,但我得到了一个非常奇怪的副作用。
当我滚动并加载新内容时,前几秒钟没有任何链接起作用。事实上,页面上的任何链接都不会在几秒钟内起作用。而且,如果我滚动得很远,例如连续快速加载 5 个页面,情况似乎会变得更糟——然后我必须等待 20 秒才能点击页面上任何位置的任何链接。
我在使用 Firefox 或 IE8 时也有同样的体验,所以我猜这不是浏览器。
任何想法是什么原因或解决方法是什么?
几周前,我用 jquery 实现了一个无限滚动页面。滚动本身效果很好,但我得到了一个非常奇怪的副作用。
当我滚动并加载新内容时,前几秒钟没有任何链接起作用。事实上,页面上的任何链接都不会在几秒钟内起作用。而且,如果我滚动得很远,例如连续快速加载 5 个页面,情况似乎会变得更糟——然后我必须等待 20 秒才能点击页面上任何位置的任何链接。
我在使用 Firefox 或 IE8 时也有同样的体验,所以我猜这不是浏览器。
任何想法是什么原因或解决方法是什么?
还是有这个问题?
问题:
初步想法:
尝试使用 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>