我有一个应用程序需要一个数据列表,但这些数据可能非常大。如果我要在客户端(移动应用程序)中显示此数据列表,我无法从服务器获取所有数据,因为移动设备的限制空间。
例如,像Facebook应用程序一样,服务器中有大量的新闻源,用户只能看到其中的一些。如果用户想要查看更多内容,则需要向下滚动并刷新。那么如何在客户端和服务器上实现这样的东西呢? (目前我的服务器是用ruby写在rails上的,客户端是iOS)
一旦客户端获取这些数据,它是存储在内存还是本地数据库中?我担心手机的内存限制。
由于
答案 0 :(得分:1)
在服务器端,您可能编写一个支持分页和自定义结果计数的API,即:myapp.com/api/get?start=0&count=20
以获得前20个结果,以及当用户在iPhone上一直向下滚动视图时,获取下一个项目,如:myapp.com/api/get?start=20&count=20
。
如果您计划好自己的设计,那么您将获得非常灵活的东西,如果您意识到20个结果太多/不够等,您将能够在以后更改。
根据您应用的体系结构和应用将处理的数据量,您可能还需要根据上次更新的时间提供API方法,以确保您不会丢失数据(例如,如果您拨打第二个get?start=20
在第一个之后几分钟,start
索引可能没有相同的含义。)
至于在本地存储数据,这一切都取决于你想要实现的目标。您确定需要保存用户下载的所有吗?您可以只存储本地SQLite数据库中最近获取的项目,并在下次启动应用程序时查询它们,然后刷新视图(我不知道它是如何在Facebook的iPhone应用程序中实现的,但至少它看起来像是这样做了。)