具有大量 JSON 数据的 UITableView 按字母顺序索引

问题描述 投票:0回答:2

我有一个表,它从返回一堆 JSON 数据的 Web 服务加载数据。当用户向下滚动时,我会加载更多数据,因为我正在查询的数据库包含相当多的数据。

我的问题是 - 在这样的表格上实现右侧字母顺序列表是否可行以及如何做到这一点?如果我加载所有数据,然后在本地对它们进行排序,填充索引并每隔一段时间缓存数据,这绝对是可能的。但如果数据量为 10K 行或更多该怎么办?也许在应用程序首次启动时加载此数据是一种选择。

那么在性能和可用性方面,有人对可以做什么有什么建议吗?

ios json objective-c database uitableview
2个回答
1
投票

我认为您不应该下载所有数据来创建这些索引,这会减少刷新时间并可能导致内存问题。

但是,如果您认为索引可以产生很大的影响,那么您可以向服务器 API 添加一些功能。我会添加一个不同的 API 调用,例如

get_indexes
。或者甚至我会添加
POST
参数
get_indexes
它将索引数组添加到任何设置了此参数的调用中。

您应该准备好处理以下情况:用户点击索引而没有下载任何数据,或者用户只是强调您的应用程序使索引快速上下滚动。


1
投票

首先看看下载的数据有多大。如果服务器可以对数据进行 gzip 压缩,那么数据可能会小得惊人——由于存在重复的键,JSON 压缩效果非常好。

如果太大,我建议尽可能修改服务器,让您指定起始字母。这样,如果用户点击索引中的“W”,您应该能够请求以“W”开头的所有项目。

从服务器获取总记录数也会很有帮助,这样您就可以提前知道表中有多少行。我还会为每个未知行返回一个“正在加载...”字符串,直到实际数据下来。

© www.soinside.com 2019 - 2024. All rights reserved.