首页  >  问答  >  正文

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

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

PHP中文网PHP中文网2726 天前918

全部回复(2)我来回复

  • 高洛峰

    高洛峰2017-04-17 13:27:20

    几个方案:

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

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

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

    回复
    0
  • ringa_lee

    ringa_lee2017-04-17 13:27:20

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

    回复
    0
  • 取消回复