菜菜哥,我又来了
程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案

晚上请我喝咖啡吗?

程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案
那你得先帮我解决一个问题
程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案

说来听听

程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案
昨天加班很晚排查一个分页引起的问题,到现在还没解决,心情有点抑郁,需要安慰
程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案

说来听听

程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案
我们新做的商城首页是一个分页的商品的列表,昨天运营反应,加载出来的商品偶尔有重复的,但是我本地和测试服务器都没问题,代码是没问题的
程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案

分页是怎么写的呢?

程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案
就是传统的那种,客户端上传pagesize和pageindex两个参数,然后服务端根据排序规则去排序
程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案

那我可能知道怎么回事了,晚上咖啡我喝定了

程序员过关斩将--小小的分页引发的加班血案
程序员过关斩将--小小的分页引发的加班血案

        通过以上的对话,身为程序员的你是否也遇到过妹子这样的问题呢?传统的而且网上到处充斥着的也是这类方式,客户端根据自己的滚动不断的更新pagesize和pageindex两个参数,然后上传给服务端接口获取数据,而且网络上也很少说明这种方式是否有问题,那到底有没有问题呢?

    谈到分页,无论程序怎样写,分页这个业务的核心动作是根据开始位置和结束位置来获取一段数据,无论你的排序规则有多复杂,最终的目的总是获取总列表数据中一段连续的数据。无论你是直接用的sql语句分页,还用的搜索引擎(比如es),最终在客户端体现的效果就是下一页的数据展现。

当然体现在客户端的UI上的交互操作可以有很多样式

程序员过关斩将--小小的分页引发的加班血案


1. 服务端分页接口参数新增上一页最后一条数据id参数lastId,去掉pageindex参数,因为在多数情况下,pageindex参数在服务端的作用是确定数据的起点而已,如果有了lastid,pageinde在很多情况下其实已经不需要了。

2. 服务端把所有的数据做缓存,这样动态数据在一定时间内静态化,但是这样也是治标不治本。

3. 如果业务上对于排序无要求的话,服务端可以采用顺序分页,把获取的数据落在不会变动的数据段上



相关文章:

  • 2021-10-05
  • 2021-08-15
  • 2021-05-03
  • 2022-01-11
  • 2021-10-17
  • 2021-10-03
  • 2021-12-31
  • 2022-12-23
猜你喜欢
  • 2021-11-08
  • 2021-07-30
  • 2022-12-23
  • 2021-09-25
  • 2021-09-11
  • 2021-08-18
相关资源
相似解决方案