blakejia
V2EX  ›  问与答

实时变动数据。如何正确的处理分页呢?

  •  
  •   blakejia · Jul 13, 2020 · 3012 views
    This topic created in 2308 days ago, the information mentioned may be changed or developed.
    比如一个论坛,所有帖子按最后用户回复时间排序。那如果在用户浏览第一页完到获取第二页数据时。整个数据集合已经与请求第一页不一致了。
    可能会导致用户最终看不到某些帖子,或者某些帖子出现了两遍
    13 replies  •  2020-07-19 18:23:21 +08:00
    blakejia
    blakejia
    OP
    Jul 13, 2020
    1
    刚测试了下。V2 也存在这个现象
    183shl
    183shl
    Jul 13, 2020❤️1
    2
    lastTime 或者 lastId
    lxk11153
    lxk11153
    Jul 13, 2020❤️1
    3
    "按最后用户回复时间排序" 肯定是不行的,你得换成按帖子创建时间排序不就行了
    af463419014
    af463419014
    Jul 13, 2020❤️2
    4
    事实就是翻页的时候会出现重复和遗漏的数据,正常现象,一般都不处理
    可以再看参考下豆瓣小组,贴吧等,也是一样的效果
    pwli
    pwli
    Jul 13, 2020
    5
    正是因为数据变动了,所以才表现的和翻页前不一致,感觉没毛病啊
    jjianwen68
    jjianwen68
    Jul 13, 2020
    7
    以题目讨论的论坛帖子来说,实际使用时翻到下一页发现有重复,完全可以接受的
    blakejia
    blakejia
    OP
    Jul 13, 2020
    8
    @af463419014 #4 这个问题在翻页刷新的时候不怎么明显。但是在上滑加载的场景里面有可能会导致连着两条一样的。特别碍眼。🐶
    optional
    optional
    Jul 13, 2020 via iPhone
    9
    用 id 排序 而不是 limit/offset 后者还有其它问题呢。
    lower
    lower
    Jul 13, 2020❤️1
    10
    这种误差应该是可容忍的,要不就把下一页的数据缓存
    qiayue
    qiayue
    Jul 13, 2020❤️1
    11
    @blakejia 前端显示时对于重复 ID 做过滤就好了
    autoxbc
    autoxbc
    Jul 13, 2020
    12
    前端是一页一页翻,后端不应该一页一页吐数据,应该一次出 10 页的,前端做无刷新翻页
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   888 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 18:06 · PVG 02:06 · LAX 10:06 · JFK 13:06
    ♥ Do have faith in what you're doing.