【发布时间】:2014-09-12 22:54:50
【问题描述】:
我应该在 Javascipt 中解析一个非常大的 JSON 数组。它看起来像:
mydata = [
{'a':5, 'b':7, ... },
{'a':2, 'b':3, ... },
.
.
.
]
现在的问题是,如果我将整个对象传递给我的解析函数parseJSON(),那么它当然可以工作,但它会阻止选项卡的进程 30-40 秒(如果数组包含 160000 个对象)。
在从服务器请求此 JSON 并对其进行解析的整个过程中,我向用户显示了一个“正在加载”的 gif。当然,我调用 parse 函数后,gif 也会冻结,导致用户体验不佳。我想这次没有办法绕过,有没有办法以某种方式(至少)防止加载 gif 冻结?
类似于每隔几毫秒对我的 JSON 块调用 parseJSON() 之类的东西?虽然是 javascript 中的菜鸟,但我无法实现这一点。
非常感谢,如果您能在这里帮助我,我将不胜感激。
【问题讨论】:
-
160 000 个对象确实很多。您应该在服务器端拆分它
-
你检查过这个帖子吗? stackoverflow.com/questions/1160137/…
-
在服务器端应用分页,在json中添加分页数和下一页等,然后在ajax成功时继续调用api。
-
如果适用于您的情况,您可以拆分数据并在不同的时间点发送块。
-
您可以使用 setTimeout 以最小延迟调用您的 parseJSON。有关更多信息,请参阅this SO 帖子。
标签: javascript