素材牛VIP会员
如何解决按登录时间分页加载数据会有重复的问题?
 sy***88  分类:SQL代码  人气:853  回帖:2  发布于6年前 收藏

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

 标签:webappmysqljava

讨论这个帖子(2)垃圾回帖将一律封号处理……

Lv6 码匠
tl***an CEO 6年前#1

几个方案:

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

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

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

Lv5 码农
Ca***on 职业无 6年前#2

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

 文明上网,理性发言!   😉 阿里云幸运券,戳我领取