搜尋

首頁  >  問答  >  主體

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

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

PHP中文网PHP中文网2774 天前939

全部回覆(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
  • 取消回覆