解决海量后端数据前端处理难题
前端处理后端一次性传输的2000万条设备数据面临内存爆棚的问题,既要用原生 html、JS 和 ECharts 可视化,又无法处理大量数据。
解决方法:
1. 降采样和按需加载
立即学习“前端免费学习笔记(深入)”;
后台对每小时的数据进行降采样,计算30秒或分钟的平均值,图表中默认按30秒甚至分钟刻度展示。当用户放大 x 轴查看详情时,再请求某个时间段内的所有数据。
2. 优化数据传输格式
不用 JSON 格式,而是用二进制数据传输时间戳和浮点数。16 字节存储一对数据,减少传输体积。根据精度要求,也可以用 Float 和 int 来降低大小。
3. 流式传输和事件推送
对于持续更新的数据,可以使用 EventSource 流式传输,在页面端解码数据。注意 EventSource 传输的是字符串,需要用 base64 编码和解码,增加数据传输量。