JQuery获得更多的表行上滚动

JQuery Get More Table Rows on Scroll

本文关键字:滚动 JQuery      更新时间:2023-09-26

我有一个表,其中列出了客户以前的购买记录。当客户只从我们这里购买了200-300件物品时,下面的代码效果很好。然而,当我们有经销商每周从我们这里购买超过5000件商品时,这就变得非常麻烦了。是否有一种方法可以在需要时将更多行加载到表的底部?将10,000条记录抓取并加载到一个表中非常非常慢。理想的解决方案是最初获取30行并将它们加载到表中,当屏幕上可以看到倒数第4行时,再获取另外30行。任何想法吗?下面是加载所有结果的当前代码:

JQuery:

   var data = JSON.parse(call.responseText);
            if(data[0] === 'none') { $('#purchaseHistory').html('<center><b>There is no purchase history to show.</b></center>'); return; }
            var purchases = data.length;
            $('#purchaseHistory').empty();
            for(i = 0; i < purchases; i++) {
                $('#purchaseHistory').append('<tr ondblclick="popup(''order.php?order='+data[i]['ORDER']+'&cust='+CUSTOMER_ID+''', ''Order #'+ data[i]['ORDER'] +''', ''1150'', ''845'');"><td style="width: 60px;">'+ data[i]['ORDERNO'] +'</td><td style="width: 100px;">'+data[i]['ORDER_DATE'] +'</td><td style="width: 100px;">'+data[i]['PRODCODE']+'</td><td style="width: 170px;">'+ data[i]['ITEM'] +'</td><td style="width: 25px;">'+ data[i]['QUANTITY'] +'</td><td style="width: 120px;">'+ data[i]['STATUS'] +'</td><td style="width: 75px;">'+ data[i]['SHIP_DATE'] +'</td><td style="width: 60px;">---</td><td style="width: 70px;">'+ data[i]['AMOUNT'] +'</td><td style="width:85px;">---</td></tr>');
            }

添加滚动窗口的监听器:

$(window).scroll(function() {});

这可以帮助你知道用户何时接近页面底部。

您的后端应该能够分页,按块检索数据,这样您就可以在用户到达页面底部时将结果附加到表中,从而发出AJAX请求。

这里有一个你如何实现的例子。

https://jsfiddle.net/eojdzc3o/