滚动速度时,滚动工作两次时加载更多

时间:2013-11-11 03:22:45

标签: javascript jquery ajax

嗨我正在使用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();
        }
    }); 

});

1 个答案:

答案 0 :(得分: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();
        }
    });

});