如何有效地选择/查询7万条json数据?
我现在正在开发 javascript 库,其中包含印度尼西亚的 70,000 个村庄(可通过 http://bisbak.com/regina/ 访问),我构建了一个数据浏览器小部件。在 Safari 和 Firefox 中一切正常。但是当我使用 Chrome 时,当我选择一个地区(它会自动加载村庄)时,总是需要很长时间。检索地区村庄的代码如下:
for (n in data) {
var rs = [];
if (n is ok) rs.push(data[n]);
return rs;
}
数据是具有超过 70,000 个村庄键的 json 对象。
I'm now developing javascript library which consists 70,000 more villages in Indonesia (accessible at http://bisbak.com/regina/) and I build a data browser widget. Everything is fine in Safari and Firefox. But when using Chrome, it always takes long when I happen selecting a district (which automatically loads villages). The code to retrieve district's villages is like:
for (n in data) {
var rs = [];
if (n is ok) rs.push(data[n]);
return rs;
}
data is json object with more than 70,000 village keys.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许您应该仅在必要时加载数据。
在您的情况下,您可以在启动时仅加载Provinsi。当选择一个 Provinsi 项目时,您仅加载属于该项目的所有 Kab./Kota 项目;当选择一个 Kab./Kota 项目时,您只能选择属于该项目的所有 Kecamatan 项目,依此类推。
为了提高性能,您可以加载两个级别而不是一个级别。因此,当选择Provinsi项目时,您将加载所有Kab./Kota项目以及属于它的Kecamatan。此外,在客户端和服务器端缓存数据。
Maybe you should load the data only when necessary.
In your case you could load only Provinsi on startup. And when one Provinsi item is selected, you only load all Kab./Kota items that belong to it; and when one Kab./Kota item is selected, you only all Kecamatan items that belong to it, and so on.
To improve the performance, you could load two levels instead of one. So when a Provinsi item is selected, you load all Kab./Kota items and the Kecamatan that belong to it. Additionally, cache the data on the client and server side.