【Java】翻页 cursor与page翻页

后端返回数据的接口需要翻页设计,防止客户端一次性请求大量数据。传统的方式是page+limit。通过page和limit可以计算出从哪里开始拿数据,以及需要拿多少条。另一种方式是cursor+limit。cursor是一个游标,可以是id或者时间戳等,总之可以唯一标识一条数据,并且存储时会按照该字段排序。每一次访问时带上前一次返回的cursor,服务端就返回cursor之后的limit条数据以及下一次请求时的cursor。

推荐使用cursor的分页方式。原因有:

使用page+limit的方式,如果在访问当前页时,老的数据有插入,那么本次返回的一页数据就会可能重复;另外每一次也需要计算从哪里开始。但是cursor方式必须有唯一排序键。

另外,使用cursor方式,需要考虑分页点数据相同问题,不然会有重复数据,另外如果一页数据都相同,可能造成无法翻页。

解决方式是将cursor相同的数据全部下发。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值