将大型数据库加载到UITableView中的最佳实践
问题描述:
我正在创建一个论坛类型的应用程序,用户提出问题并可以回答对方的问题。这些问题最近被存储在UITableView中,并且还会有一个搜索功能。后端在Node JS中编码并使用SQLite。目前,我只是简单加载后端所有问题,并使用它们填充UITableView。但是,我意识到这最终会变得不切实际,因为这个数据库最终会有成千上万的问题。这通常如何处理?我是否应该将所有问题都加载到客户端,然后每次向他们展示十个或其他东西?还是应该将数据库更改为一次返回十个数据库,并且每次到达表视图的底部时都要加载新的数据库?将大型数据库加载到UITableView中的最佳实践
答
更简单的解决方案是批量加载数据。您可以在后端编码,根据请求的数据发送数据。
例如:
请求中具有以下信息,这种格式的数据:
NSDictionary *parameters = @{
@"customerId":@"this-is -not necessary",
@"pageNumber":[NSNumber numberWithInt:pageOne],
@"pageSize":@25};
因此,服务器会发送给您根据您的要求的数据。 在这个请求中,您将会加载25个结果。当您继续滚动并到达表格视图的结尾时,您可以请求下一批详细信息。
通过这种方式,您不必一次下载所有数据,使用这种方法也可以使应用程序响应速度更快。
答
承载新的10或20,每次到达从后端表视图的底部(我的应用程序使用此方法),所有的答案不需要加载到sqlite的,
_currentpage = 1,2,3 ... 。everypage获得10个或20个数据
- (的NSString *)newsURL { // http://app.53bk.com/api/newslist?classid=3&pg=1&pagesize=1 返回[NSString的stringWithFormat:@ “?API /新闻列表的classid =%@ & PG =%LD &页大小= 2”, self.channelID,(long)_currentPage]; }
答
您可以处理大数据的唯一方法是将其拆分成小部分。
- 使用页面来控制数据。
- 或者当您在滚动时点击底部时,加载另一堆数据。
好吧,这似乎是对我来说最好的方法。谢谢! –