首页 > 如何解决按登录时间分页加载数据会有重复的问题?

如何解决按登录时间分页加载数据会有重复的问题?

场景是这样的:安卓客户端要按登录时间在首页显示用户列表,服务端提供数据,每次下拉请求,相当于是从服务端请求加载下一页的的数据,但是这样会有一个问题,假如第一页服务端给了客户端最新的数据,但是在加载第二页之前,又有几个新的用户登录了进来,这样这些新用户就是最新登录的,所以在第二页的时候就会有一些第一页的用户,请教给位大神怎么解决这个问题?


几个方案:

  1. 客户端去重,优点:实现简单。缺点:数据不准确。

  2. (推荐)根据时间排序,客户端获取下一页数据时传回上一次最后一条数据的登录时间,数据库查询的时候select * from table where 登录时间 < 上一次最后一条数据的登录时间 order by 登录时间。

  3. 给每个客户端记录一个时间戳,获取第一页的时候更新这个时间戳,查询下一页的时候select * from table where 登录时间 < 时间戳 order by 登录时间 limit 当前页


如果用户顺序是不变的,可以每次记录显示的最后一个用户,从服务端获取到下一页后,先搜下如果有之前的最后一个用户,就跳过他以及之前的用户,为了避免用户不够了可能要根据实际情况每次多加载几个。如果本来应该在第二页的用户因为重新登陆跑到最前边去了,应该也没问题吧,一般也不会有人能注意到。

【热门文章】
【热门文章】