V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
daydaysay
V2EX  ›  API

RESTful api 分页,游标问题

  •  
  •   daydaysay · 2015-09-16 10:06:58 +08:00 · 5140 次点击
    这是一个创建于 3341 天前的主题,其中的信息可能已经有所发展或是发生改变。

    获取用户粉丝列表。

    由于数据多,所以会分段返回。

    一般都是在 mysql 中 offset (页数 * 每页数)

    但是考虑到,两个请求中间,如果有个新粉丝进来,这个时候就会将上个请求末尾的那个用户在这次请求中重复返回去。

    如果 cursor 返回中,用关注时间来当隔断的话,当时间有重复,分页还是会不精确

    大家有没有完美的解决方案。

    15 条回复    2016-07-13 12:01:07 +08:00
    9hills
        1
    9hills  
       2015-09-16 10:14:58 +08:00 via iPhone
    好多系统貌似不 care 这个重复,比如 v2ex
    oott123
        2
    oott123  
       2015-09-16 10:21:43 +08:00 via Android
    有的可以用 since_id 做,好处多多
    hjxx
        3
    hjxx  
       2015-09-16 10:58:07 +08:00
    时间+用户 id 呢
    qq12365411
        4
    qq12365411  
       2015-09-16 11:02:34 +08:00
    加上个 [关注时间] 可以防止你说的 突然 有个新粉丝来的问题

    offset (页数 * 每页数) where 关注时间< 初次查询的时间
    ToysMall
        5
    ToysMall  
       2015-09-16 11:05:17 +08:00
    since_id max_id
    codeyung
        6
    codeyung  
       2015-09-16 11:48:38 +08:00
    time 标记
    loading
        7
    loading  
       2015-09-16 12:10:15 +08:00 via Android
    这个比较麻烦的,例如正在看第一页,每页 10 条,点第二页是新加了 10 条,这页码突然就变成第三页…
    从用户角度开看…第二页跑哪去了~
    wingoo
        8
    wingoo  
       2015-09-16 12:27:01 +08:00
    这种事要看重要程度, 你在意吗?
    jucelin
        9
    jucelin  
       2015-09-16 12:36:26 +08:00
    可以直接参考 weibo 的 API 设计: http://open.weibo.com/wiki/2/statuses/friends_timeline
    还是要看数据更新的速度来判断是否需要这样做。
    zonghua
        10
    zonghua  
       2015-09-16 12:45:30 +08:00
    @loading 百度贴吧客户端就是这个鬼样子,下拉刷新,发现又回到原来的位置。
    icegreen
        11
    icegreen  
       2015-09-16 13:34:35 +08:00
    考虑用时间戳+loadmore 模式呢
    alsotang
        12
    alsotang  
       2015-09-16 13:44:00 +08:00
    这点重复,无所谓啦
    abelyao
        13
    abelyao  
       2015-09-16 13:47:03 +08:00 via iPhone
    以上一页最后一个粉丝 ID 做参数,而不是以页面 ID 做参数
    daydaysay
        14
    daydaysay  
    OP
       2015-09-16 15:34:10 +08:00
    如果算作重复,那肯定只能当作 bug 来对待拉。我已经知道怎么解决这个问题了。谢谢各位。
    liuhui244671426
        15
    liuhui244671426  
       2016-07-13 12:01:07 +08:00
    这个问题都是算成可优化的项,不算 bug 了吧.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5290 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:55 · PVG 13:55 · LAX 21:55 · JFK 00:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.