我正在开发一个大数据客户端应用程序,服务器语言是Java。在前端中,我使用原始的JavaScript作为主要语言,但使用AngularJS作为MVC框架。
问题
处理大量数据分析时,单个REST API响应的大小通常在1.5MB至3MB之间。将这些数据处理以构建DOM非常困难。
- 首先需要花费约5到10秒钟来加载JSON。
- 然后构建UI(DOM)
- 一旦构建完DOM,基于用户与数据的交互 - 我必须将带有更新值的相同JSON发送/返回到服务器。
请建议我优化页面响应速度的选项。
- 我想到了一些事情:
- 将JSON分成每次1000个块,一旦DOM加载完成,再静默地带入数据并更新UI。
- 在服务器上GZIP JSON并在客户端解码回来。
给我你的具体解决方案!
示例JSON可能如下:
var data = [
{
prop:val,
prop2: {},
prop3:[
id: val,
prop4: { {}, {}, {}, {}},
prop5: [ [], [], [] ]
]
},
{},
{},
{}
]
一些使用案例
- 数据大小可能为10000个对象,嵌套至少六七层。
- 需要构建网格(表),行的长度与对象相同,列至少有100列。
- 所有数据单元格都有自定义上下文菜单,具有嵌套标题,所有列都可排序,行也可以排序,并且这些排序顺序在用户更改后立即传达到服务器。但我有第二时间阈值。
一个非常基本的例子在这里:http://shekhardesigner.github.io/OuchGrid/
[{name: value},{name: value}...10000]
,你可以将其替换为一个二维数组[[value], [value] ...]
,通过消除重复的属性名,从而大幅减少有效载荷大小。 - Yury Tarabanko