分页查询数据

分页查询:
在开发过程中,经常需要做的一个事,就是把数据显示给用户看,如果数据相对少的话,直接把所有数据都全部查询出来即可,但是,假如数据很多,那么加载数据的时间就会很长,如果数据量过于庞大的话,不是在网络较差的情况下了,就算是在本机也会很慢;
所以,在对数据查看这方面,我们通常都会使用分页查询,就是先把一小部分的数据查询出来,假如数据有100条,那么就可以先把10条,先查询出来;这样的话,每次只查询10条,查询的速度会快很多,而且用户体验也较好,同时也大大减轻了服务器的一次性查询所有数据的压力;
Table表格分页:
该方法为纯js实现分页;一次性查询记录并加载到html的table中,然后通过选择性的显示某些行来达到显示分页目的;但这是一种伪分页,障眼法罢了,只能用于数据少的情况下;一旦数据过多了,十几万条数据加载到html中,那速度会变的很慢;而且不实时;一次性加载完后,数据会写死在页面上的;若数据库的数据有变化;浏览器页面上显示的依然会是上次加载到页面上的数据;
一次查询,分批显示:
该方法可以执行一个数据库查询操作,得到结果集rs,然后,通过指针的移动,来显示当前页面的记录,这样就可以rs.absolute(当前分页号*每页记录数)定位到当前页面的第一条记录,然后通过while循环显示n条记录(n为每页显示的记录数),在跳页事,只需要修改currentPage,即可在重定位到下一页时把当前页面号改掉,重新定位记录指针;通过while遍历显示n条记录,与js选择性显示不同;该方法是选择性遍历;与js分页不同的是,该方法分页每次跳页修改的是遍历的指针;每次跳页的进行一次全面查询;但该方法同样不适合数据庞大的情况下进行查询;相当于js分页查询,该方法的优点在于实时性,每次跳页都会查询一次数据库,保证了数据的实时性;
服务端分页:
该方法为跳到第几页才查询、显示第几页内容,主要就是根据客户端表格的页面计算出数据库要查询的当前页面的第一条记录的位置,它的优点在于实时性,跳页才查询,数据量小:只加载当前页的记录进行显示;
通常在项目中,我们经常见到的查询,出来table分页查询之外,还有一种查询就是当用户将某个按钮往上拉时,会显示出更多的数据;或者是当用户将页面滚动到最低部时,也会显示新的数据;
而这一种,特别是APP端中,最为常见;而数据的显示通常都会与某种字段,特别是时间来进行排序;
顺序排序会相对简单点,因为它可以直接在数据库中从第一条数据开始查询;
但如果是倒序查询,则是数据库中的最后一条数据查询,那么这样的话,就需要数据库中数据的总条数了,从最后一条数据往前查询;

第一步:先查询出数据的总条数;

Sql语句中,使用COUNT()统计数据总条数;
然后定义两个全局变量,用于接收总条数以及总条数-10的位置数;
当页面滚动或者点击,触发某个事件时;

每执行即recordPage自身减10;因为查询数据的分页位置limit不能为负数,所以当自身减10小于0时,即为0;
页面滚动事件:

scrollTop();获取匹配元素相对滚动条顶部的偏移。
( t h i s ) . s c r o l l T o p ( ) + (this).scrollTop()+ (this).scrollTop()+(window).height(); 获取滚动条偏移的位置;
$(document).height();获取文档的高度;
当滚动条的偏移位置和文档的高度相等时,则执行;
这样就可以使页面滑动到底部时,加载更多数据;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值