服务器或客户端的Android分页

时间:2016-12-25 14:16:33

标签: android web-services pagination

我正在开发一个Android应用程序,它将从我的webservice获取数据并将其显示给用户。我在决定在哪里保持分页时遇到困惑(在客户端或服务器端)

我的方案是,我将从用户那里获取输入并调用我的webservice,获取输入的所有可用数据(响应是Json格式),然后显示在 Recyclerview中获取的数据即可。我想最初只显示50条记录,然后当点击“显示更多”按钮时,显示下一条50条。

我的数据(来自webservice的响应)范围从0到15000不等,基于用户的输入。我在UI中有其他过滤参数,这将在选择时更改渲染数据。

那么,一次获取所有15000条记录并在客户端进行各种处理是否合适?

或每次点击“显示更多”按钮时获取50条记录?并在更改过滤器时触发新的API调用?

感谢。

1 个答案:

答案 0 :(得分:2)

你永远不应该尝试一次性获取如此大量的记录,因为:1)你的应用程序将有一个非常慢的FRT(第一响应时间)2)用户不太可能查看超过几百条记录在任何给定的时间。 3)如果支付了用户数据(2G / 3G / 4G),则用户最终支付他将永远看不到的数据。

因此,您应始终在服务器端进行分页,然后您的客户端可以在需要时请求后续记录。

话虽如此,每次用户点击“显示更多”时,网络请求都会花费时间并等待响应。也会是糟糕的用户体验。因此,您需要考虑将请求批处理,甚至预先获取一些数据。在更改架构之前,您可以看到以下视频:https://www.youtube.com/watch?v=3kOx-IPqtqA