Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尽管使用了“无限滚动”标志,但仍会频繁触发_Javascript_Php_Jquery - Fatal编程技术网

Javascript 尽管使用了“无限滚动”标志,但仍会频繁触发

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

所以,我用jQuery尝试了无限滚动。问题是,只要我向下滚动几个像素,函数就会触发大约50次,这对我的服务器有很大的影响,因为页面上有很多巨大的GIF。我被建议使用一个标志,但它似乎不能解决问题

<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毫秒即可加载。。。为什么“只在到达页面底部时加载”-逻辑不起作用?。。。