2016-12-25 170 views
3

我正在開發一個android應用程序,它將從我的web服務中獲取數據並將其顯示給用戶。我在決定在哪裏分頁(在客戶端或服務器端)有困惑Android分頁服務器或客戶端

我的方案是,我會從用戶那裏接受輸入並調用我的web服務,以獲取輸入可用的所有數據(響應採用Json格式),然後顯示Recyclerview中提取的數據。我想最初只顯示50條記錄,然後當點擊「顯示更多」按鈕時,顯示下一個50條記錄。

根據用戶的輸入,我的數據(來自webservice的響應)範圍從0到15000不等。我在UI中還有其他的過濾參數,這些參數在選擇時會改變渲染的數據。

那麼,一次獲取所有15000條記錄並在客戶端進行所有類型的處理是否好?

或每次點擊「顯示更多」按鈕時獲取50條記錄?並在過濾器更改時觸發新的API調用?

謝謝。

+0

做你想做的。並嘗試一切。這比問我們什麼更好。 – greenapps

+0

我也建議分頁,但忘記更多或加載更多按鈕。正好當用戶滾動加載下一頁時。更有效的方法。將來也要考慮這一點。現在你有15000條記錄,也許在未來的某個時間你將有1.000.000條記錄。與分頁是我的建議! –

回答

2

您不應該一次嘗試獲取如此大量的記錄,因爲:1)您的應用程序的FRT(第一響應時間)非常慢2)用戶不太可能查看超過幾百個記錄在任何給定的時間。 3)如果支付用戶數據(2G/3G/4G),用戶最終支付他永遠不會看到的數據。

因此,您應該始終在服務器端進行分頁,然後您的客戶端可以在需要時請求後續記錄。

話雖如此,網絡請求將需要時間並等待響應,每次用戶點擊「顯示更多」也會是不好的UX。所以,你需要考慮批量請求,甚至預取一些數據。這是一個很好的視頻,讓你在改變你的架構之前看到:https://www.youtube.com/watch?v=3kOx-IPqtqA