【Java】翻頁 cursor與page翻頁

後端返回數據的接口需要翻頁設計,防止客戶端一次性請求大量數據。傳統的方式是page+limit。通過page和limit可以計算出從哪裏開始拿數據,以及需要拿多少條。另一種方式是cursor+limit。cursor是一個遊標,可以是id或者時間戳等,總之可以唯一標識一條數據,並且存儲時會按照該字段排序。每一次訪問時帶上前一次返回的cursor,服務端就返回cursor之後的limit條數據以及下一次請求時的cursor。

推薦使用cursor的分頁方式。原因有:

使用page+limit的方式,如果在訪問當前頁時,老的數據有插入,那麼本次返回的一頁數據就會可能重複;另外每一次也需要計算從哪裏開始。但是cursor方式必須有唯一排序鍵。

另外,使用cursor方式,需要考慮分頁點數據相同問題,不然會有重複數據,另外如果一頁數據都相同,可能造成無法翻頁。

解決方式是將cursor相同的數據全部下發。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章