瀑布流(无限翻页)带来的问题

本文探讨了瀑布流式翻页与传统翻页的区别,分析了两种方式下的数据重复问题及解决方案。对于瀑布流,提出了客户端去重和修改分页逻辑两种方法,并讨论了各自的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

比起传统翻页,瀑布流式翻页现在越来越火。来看一下区别

1. 传统翻页:

    每次翻页都会重新渲染一个全新的页面,如论坛。

    问题:当你翻页时,可能会发现,哎这帖子我刚才在上一页看过啊,这是很正常的,因为帖子一般是按最后一个回复的时间排序的。

    解决方法: 无,传统分页就这样。

2. 瀑布流:

    每次翻页,会把下一页的数据追加到当前页面。

    问题: 如果翻页时数据发生变动,将会在同一个页面出现重复数据,想一下前面说的论坛的场景。

    解决方法:

         1. 客户端去重

             客户端记录之前加载的数据,在获得新数据后,客户端去重。

             缺点: 去重后数据会少,比如新数据获得10条,其中有2条重复的,最后只加载了8条,且顺序无法保证。

             优点: 服务端代码不用改动。

         2. 修改分页逻辑

             如朋友圈,其是按朋友圈的发布时间排序的,且发布时间永远不可变。因此只需取当前页面最后一条发布时间的下10条数据即可。

             即将

SELECT * FROM posts WHERE username='licong' LIMIT 10

             修改为

SELECT * FROM posts WHERE username='licong' AND publish_time > :time LIMIT 10

         优点: 简单,有效

             缺点: 限制极为苛刻,数据必须按照一个固定不变的属性排序,比如前面说的发布时间。试想论坛这个场景,帖子最后顶帖时间是可变的,如果用这个逻辑去做,会导致有一些帖子永远不可见。

        

  

    

转载于:https://www.cnblogs.com/selol/p/5489165.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值