0

嗨,我正在使用 ajax 滚动分页,当我以两次速度滚动页面时检查我的工作,当它两次工作时,它两次发送相同的 id 并且它对结果有效我该如何解决这个问题?这是我的脚本

$(document).ready(function(){   
    function last_msg_funtion()
    {
       var IDall=$(".box-mainb:last").attr("id");
       var cbid=$(".box-mainp:last").attr("id");
        $('div#last_msg_loaderi').html('<img src="bigLoader.gif">');
         $.get('page.php', {'action':'get','last_msg_id':IDall,'id':cbid}, 
        function(dataz){
            if (dataz != "") {
            $(".box-mainb:last").after(dataz);          
            }
            $('div#last_msg_loaderi').empty();
        });
    };  
    $(window).scroll(function(){
        if  ($(window).scrollTop() == $(document).height() - $(window).height()){
           last_msg_funtion();
        }
    }); 

});
4

1 回答 1

1

一种解决方案是使用标志来检查是否已经有另一个滚动操作正在进行中,例如

$(document).ready(function () {
    var loading = false;

    function last_msg_funtion() {
        var IDall = $(".box-mainb:last").attr("id");
        var cbid = $(".box-mainp:last").attr("id");
        $('div#last_msg_loaderi').html('<img src="bigLoader.gif">');

        loading = true;
        $.get('page.php', {
            'action': 'get',
                'last_msg_id': IDall,
                'id': cbid
        }, function (dataz) {
            if (dataz != "") {
                $(".box-mainb:last").after(dataz);
            }
            $('div#last_msg_loaderi').empty();
        }).always(function () {
            loading = false;
        });
    };
    $(window).scroll(function () {
        if (loading) {
            return;
        }

        if ($(window).scrollTop() == $(document).height() - $(window).height()) {
            last_msg_funtion();
        }
    });

});
于 2013-11-11T03:32:51.737 回答