selol

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

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

         优点: 简单,有效

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

        

  

    

分类:

技术点:

相关文章:

  • 2022-01-08
  • 2021-08-30
  • 2021-09-04
  • 2020-01-19
  • 2021-11-05
猜你喜欢
  • 2021-10-30
  • 2019-03-18
  • 2021-05-20
  • 2021-04-20
  • 2022-12-23
  • 2022-01-03
  • 2021-04-01
相关资源
相似解决方案