[toc]
分页规范
一、分页底层原理
后台得到符合指定条件的所有记录,然后再截取位置。常见的截取位置方法为分页和指定第几页。
为避免请求非第一页数据时候,后台在得到符合指定条件的所有记录和第一页得到的不一样,需要前台或者后台需要记录与第一页一样的请求时间。
常见方案:
备注 | ||
---|---|---|
pageIndex | ||
pageSize | 缺点:只能index变,size不能变,不然返回的数据会错误 | |
timestamp | 此为优化点,为的是避免请求非第一页数据时候,后台在得到符合指定条件的所有记录和第一页得到的不一样 没此参数的时候,后台应该是缓存了第一次请求后所有记录,只有再次重新请求或过期才释放这些所有记录。 |
timestamp 的记录方式:
1、后端记录(需要结合过期时间)
需要结合过期时间,以处理为每个用户记录的这个第一页请求时间。有额外开销
2、前端记录
二、优化方案:解决size的变化
方法1:后端记录下发的数据,新请求时候进行过滤
缺点:需要集合过期时间
方法2:前端下发上次请求的最后一条记录信息
信息方法1:上次最后一条的id,此方法不通。因为新增的记录后台id目前已经不是自增的了
信息方法2:上次最后一条的modifyTime,此方法可以,前提需要后台的时间单位为更为精确的mm级或者um等。
结论:此时所需字段如下
不需要,已通过最后一条的modifyTime 处理 | ||
不需要,已通过最后一条的modifyTime 处理 | ||
最后一条的modifyTime | ||
pageSize | 可灵活变动 |