javascript - 如何加载和停止基于Ajax的垂直滚动功能+gif图像加载器

标签 javascript jquery ajax

我还没有能够完全实现这一点。问题是这个函数运行一次然后就停止了。我在这里错过了一个循环吗?

我尝试将 else { } block 移动到任何地方,但没有帮助。我也尝试过设置条件 else if (data=='') 但这也没有帮助。

如果我移动这个函数

if($(window).scrollTop() + $(window).height() > $("#load_data").height() && action == 'inactive') {

if(data !=='') 之外,即使从数据库中获取了最后一个原始数据,我的滚动功能和 gif 图像也不会停止

如有任何帮助,我们将不胜感激。谢谢!

<script>
var limit = 20;
var start = 0;
var action = 'inactive';
var timeOutId;

function load_city_data(limit, start) {
    $.ajax({
        url:"ps_load_data.php",
        method:"POST",
        data:{limit:limit, start:start},
        cache:false,
        success:function(data) {
            $('#load_data').append(data);
            if(data !== '') {
                $('#imgLoader').html('<img class="animated-gif" src="img/ajax-loader.gif">');
                action = "inactive";
                $(window).scroll(function(){
                if($(window).scrollTop() + $(window).height() > $("#load_data").height() && action == 'inactive') {
                    action = 'active';
                    start = start + limit;
                    timeOutId = setTimeout(function(){
                        load_city_data(limit, start);
                    }, 1000);
                }
            else {
                $('#load_data_message').html('<div class="reached">You have reached at the end of the listings</div>');
                action = 'active'; 
                $(window).off('scroll');
                clearTimeout(timeOutId);
                $('img[src="img/ajax-loader.gif"]').remove();
            }
            });
            } 
        }
    });
}
$(document).ready(function(){
    if(action == 'inactive') {
        action = 'active';
        load_city_data(limit, start);
    }
});
</script>

最佳答案

在 while 循环结束后立即使用 exit();。即使您在 ps_load_data.php 中运行多个查询,它也可以工作。

关于javascript - 如何加载和停止基于Ajax的垂直滚动功能+gif图像加载器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45680741/

相关文章:

javascript - 使用 JavaScript/Ajax 优化搜索结果

javascript - 使用ajax get方法加载网站信息是否安全?

php - 与 PHP 函数等效的 Javascript 函数

javascript - Vuejs 路由器 3.0.1 路径问题

javascript - 禁止循环函数

php - 在 Ajax : any configuration difference between Nginx and Apache

javascript - Arcgis.js 4.11 : How to add basemap layer to basemap gallery

jQuery 验证插件使用 Django 远程检查密码

php - 寻找 Ajax 或 PHP 技巧来检测它们是否有 Javascript

javascript - 使用 AJAX 响应来最大限度地减少 SPA 中的进一步请求