Javascript 尽管使用了“无限滚动”标志,但仍会频繁触发
所以,我用jQuery尝试了无限滚动。问题是,只要我向下滚动几个像素,函数就会触发大约50次,这对我的服务器有很大的影响,因为页面上有很多巨大的GIF。我被建议使用一个标志,但它似乎不能解决问题Javascript 尽管使用了“无限滚动”标志,但仍会频繁触发,javascript,php,jquery,Javascript,Php,Jquery,所以,我用jQuery尝试了无限滚动。问题是,只要我向下滚动几个像素,函数就会触发大约50次,这对我的服务器有很大的影响,因为页面上有很多巨大的GIF。我被建议使用一个标志,但它似乎不能解决问题 <script> $(window).data('ajaxready', true).scroll(function(e) { if ($(window).data('ajaxready') == false) return; if ($(windo
<script>
$(window).data('ajaxready', true).scroll(function(e) {
if ($(window).data('ajaxready') == false) return;
if ($(window).scrollTop() >= $(document).height() - $(window).height() - 0) {
$(window).data('ajaxready', false);
var box = $("#maincontent");
//Just append some content here
$.get("more.php", function(data){
box.html(box.html() + data);
});
$(window).data('ajaxready', true);
}
});
</script>
$(窗口)。数据('ajaxready',true)。滚动(函数(e){
if($(窗口).data('ajaxready')==false)返回;
if($(窗口).scrollTop()>=$(文档).height()-$(窗口).height()-0){
$(窗口).data('ajaxready',false);
变量框=$(“#主要内容”);
//只需在这里添加一些内容
$.get(“more.php”,函数(数据){
html(box.html()+数据);
});
$(窗口).data('ajaxready',true);
}
});
实际的身体看起来就像这样:
<body>
<div id="maincontent">
<?php
include ('more.php');
echo "ENDE<br>";
?>
</div>
</body>
php生成的内容足以完全填满standart全高清显示器上的全屏
编辑:据我所知,此代码应执行以下操作:仅当视口的下边框碰到文档的下边框时加载更多内容。这是期望的结果,但不是实际发生的情况。发生的情况是:每次用户滚动一个像素时,内容都会被追加。尝试移动
$(窗口)。数据('ajaxready',true)代码>在$内。获取callback@JaromandaX它输出相应的值,这些值很好。然而,用户滚动的每个像素都会触发my GET(我刚刚了解到用户滚动的方向无关紧要)。您是否尝试按照建议移动代码?即使没有标记,您的代码也不应该产生您描述的行为。我很好奇如果在滚动事件处理程序中记录$(窗口).scrollTop()
,$(文档).height()
,和$(窗口).height()`会得到什么输出。@JaromandaX是的,我确实按照您的建议移动了代码。结果保持不变:用户滚动的每个像素都会附加内容。该标志似乎不起作用,因为要附加的php只需20毫秒即可加载。。。为什么“仅在到达页面底部时加载”-逻辑不起作用?…尝试移动$(window).data('ajaxready',true)代码>在$内。获取callback@JaromandaX它输出相应的值,这些值很好。然而,用户滚动的每个像素都会触发my GET(我刚刚了解到用户滚动的方向无关紧要)。您是否尝试按照建议移动代码?即使没有标记,您的代码也不应该产生您描述的行为。我很好奇如果在滚动事件处理程序中记录$(窗口).scrollTop()
,$(文档).height()
,和$(窗口).height()`会得到什么输出。@JaromandaX是的,我确实按照您的建议移动了代码。结果保持不变:用户滚动的每个像素都会附加内容。该标志似乎不起作用,因为要附加的php只需20毫秒即可加载。。。为什么“只在到达页面底部时加载”-逻辑不起作用?。。。