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

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

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

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

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

用个表把这个用户读到的新闻记录的ID记下来,在SQL的检索条件里面加上not in条件,就不会重复了

将当前的top20的数据存储起来,可以使用数据库表,再次获取top20的时候与存储的数据比对,如果有重复的就去数据库取最近的出来,
应该能满足需求

这个交给服务器好做点,获取的时候把本地的传递上去,剔除后在返回。

用户没有刷新到20条数据的时候,随机推送几条喜爱的新闻,可不可以,每次刷新都保证有20条。

记录第一次给的第一条新闻的ID,下次刷新的时候 根据这个ID去找比这个时间新的新闻就行了