关于后台不断请求的问题

关于后台不断请求的问题

http://img1.sycdn.imooc.com//climg/5dda5bc409ec5f5912800727.jpg

老师做法是吧加载图片隐藏了.但是上下滚动的时候,还是会和后台请求数据,我觉得这样会增加服务器的压力,这样是不健康的.但是我找不到办法.有什么办法当他请求到最大条数的时候停止请求?

$(function () {
    var loading = false;
    var pageNum = 1;
    var pageSize = 5;
    var listUrl='/frontend/getawardlist'
    var shopId = getQueryString("shopId");
    var maxItem = 20;
    addItems(pageNum, pageSize);
    function addItems(pageIndex,pageSize) {
        var url = listUrl + '?pageIndex=' + pageIndex + '&pageSize=' + pageSize + '&shopId=' + shopId;
        console.log(url);
        loading = true;
        $.getJSON(url, function (data) {
            if (data.success){
                var html = '';
                maxItem = data.count;
                data.awardList.map(function (item, index) {
                    html += '' + '<div class="card" data-award-id="' + item.awardId + '">' +
                        '<div class="card-header">' + item.awardName + '</div>' +
                        '<div class="card-content">' +
                        '<div class="list-block media-list">' +
                        '<ul>' +
                        '<li class="item-content">' +
                        '<div class="item-inner">' +
                        '<div class="item-subtitle">' +
                        '<img src="' + item.awardImg + '" />' + item.awardDesc +
                        '</div>' +
                        '</div>' +
                        '</li>' +
                        '</ul>' +
                        '</div>' +
                        '</div>' +
                        '<div class="card-footer">' +
                        '<p class="color-gray">' + new Date(item.lastEditTime).Format("yyyy-MM-dd") + '更新</p>' +
                        '<span>积分:' + item.point + '</span>' +
                        '</div>' +
                        '</div>';
                });
                $('.list-div').append(html);
                var total = $('.list-div .card').length;
                if (total>=maxItem){
                    $('.infinite-scroll-preloader').hide();
                    loading = true;
                }else{
                    $('.infinite-scroll-preloader').show();
                }
                pageNum += 1;
                loading = false;
                $.refreshScroller();
            }
        });
    }
    $(document).on('infinite', '.infinite-scroll-bottom', function () {
        if (loading) {
            return;
        }
        addItems(pageNum, pageSize);
    });

    $('#search').on('change', function (e) {
        productName = e.target.value;
        $('.list-div').empty();
        pageNum = 1;
        addItems(pageNum, pageSize);
    });

    $('#me').click(function () {
        $.openPanel('#panel-right-demo');
    });
    $.init();
})


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
慕布斯37364 2019-11-24 19:27:45

刚试了一下,还是要用到$.detachInfiniteScroll($('.infinite-scroll'));会阻止滚动加载,然后再在每一次的重置查询条件下加上$.attachInfiniteScroll($('.infinite-scroll'));重新绑定无限滚动事件监听器,让重置条件后也能进行滚动加载。

  • 提问者 慕设计2030095 #1
    找到办法了.在 $('.infinite-scroll-preloader').hide();下面加一个return; 这个方法比较方便,而且测试过之后是管用的.
    2019-11-24 19:33:32
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师