qq_36949630 2018-07-12 08:10 采纳率: 100%
浏览 514
已采纳

最近项目碰到个问题,望大家给个思路

APP接口获取新闻列表,现在的实现方式是每次根据创建时间取最后20条数据,但是反馈说在某个时间内没有新的新闻发布,用户第一页一直刷新,第一页的数据是固定的,
现在想实现类似于今日头条那样,刷新一直有新的数据 还不能有重复的
希望大家给个思路 - -

  • 写回答

6条回答 默认 最新

  • 愚痴鱼 2018-07-12 08:46
    关注

    新闻列表按照时间排序,用户第一次加载时获取当前最新的20条,记录下 这20条新闻中的【最新时间】和【最旧时间】,用户耗费一些时间阅读,
    阅读完后,刷新页面请求新的数据,此时查找数据的逻辑如下:

    去查找**新产生的新闻**,即创建时间大于上次记录的【最新时间】,数据量情况有以下几种:
    (1)0条,即没有新的新闻,此时转去查询20条创建时间小于【最旧时间】的新闻(取时间相对较新的)返回给用户,同时将【最旧时间】更新为这20条中最旧的那条新闻的创建时间,以备下次查询用。
    (2)1~19条,则获取这部分新的新闻,再按照(1)的逻辑取获取剩余数量的“旧闻”,拼凑够20条返回给用户,同时将【最新时间】【最旧时间】都更新一下,以备下次查询使用。
    (3)20条及以上,仅获取**最靠近**【最新时间】的20条(这里特别注意,不是绝对时间上最新的20条)返回给用户,,同时将【最新时间】更新为这20条中最新的那条新闻的创建时间,【最旧时间】不动,以备下次查询。

    用户不停的刷新,就不停的重复上面3条。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 chaquopy python 安卓
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题