App列表流式分页后端接口处理
博客专区 > Coosky 的博客 > 博客详情
App列表流式分页后端接口处理
Coosky 发表于5个月前
App列表流式分页后端接口处理
  • 发表于 5个月前
  • 阅读 6
  • 收藏 0
  • 点赞 1
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

前些天为解决流失分页列表中item重复的问题查了很多资料,也得到了很多人指点,现将一些通用的解决方案记录一下,流式分页与传统pc网站上分页的区别就是当请求下一页数据的时候,之前请求的数据仍然回显示在列表上,因此当两次请求数据的排序有变动时,可能回出现数据重复或丢失现象,这里仅统计一些解绝数据重复的方法。

  1. 最大id限制(当然也可以不是id):没次给前端返回数据的时候,多返回一个当前列表的最大id字段,下次请求的时候将这个最大id在传给后端,后端根据最大id做判断,不返回id比当前最大id小的数据,这种方式一般只适用于没有排序要求的列表,也是最通用的解决方案
  2. 最后更新时间限制:这种方式和最大id的原理上是相同的,接口对没次请求返回当前时间,下次请求前端将这个时间传给接口,后端根据最后更新时间过滤在此之后有更新的数据;缺点:有可能导致数据显示不全
  3. 前端去重:这个就不必多说了,当然前端需要注意一下发起下一页请求的时机(我们最后也采用的这种方案)

还有人提出一些思路,需要接下来去思考验证 4. 做一个缓冲区,每次够一页的数据之后在返回给前端
5. 利用redis的zset
6. sql中使用union(这个是我是真的没有理解,链接 https://www.oschina.net/question/933354_2256138 ,欢迎大家指点一二)
7. 加缓存(这个我认为解决不了问题)
8. 实在不行砍需求吧,别搞那么复杂的排序

利用 mysql 进 行分页,将所有的排序条件都传给客户端,并切条件中有唯一值,就能解决这个重复的问题

共有 人打赏支持
粉丝 3
博文 1
码字总数 549
×
Coosky
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: