1. echarts和bizcharts性能问题

需求:
一个用来展示数据的页面,包括一个实时时间,N个biachart表格,页面定时滚动,实时刷新的功能
问题:
该页面刚开始正常,时间长了(三四个小时)之后就开始卡顿
分析:
起初不卡,后面越来越卡,可能的原因:定时器过多导致;页面数据没有清除,导致数据过多卡顿;浏览器性能不足(两个定时器,一个css自动滚动,N个表格组件);bizchart表格组件自身有问题。
过程:
首先单独测试了多个定时器同时存在的情况,发现长时间也不会导致卡顿;核对并确认每次请求数据之后都只会保留一份数据,不会造成同时存在多份数据的情况;通过观察浏览器控制台的Performance发现每次数据变动重新渲染时就会有比较大的新性能延迟,于是定位到页面每次渲染时会出现加载不动组件的情况。又将页面的其他效果清除,只留下实时数据请求和bizcharts表格。又针对bizchart表格在重新渲染时的延迟发现,bizcharts每次重新加载数据都会增加毫秒级的延迟。针对这种情况,将bizcharts换成echarts发现该问题不存在。
总结:
bizcharts在数据处理及更新的性能上不如echarts

2. 从总数据中选择部分数据展示并回显到总数据的问题

描述
在一系列提交操作中有一个网格的提交,网格数据的选取形式是 从总网格中选择希望添加的网格,然后在页面上展示,同时页面上展示的已选择的网格也可以删除掉。选中的网格在继续添加时要在总网格表中勾选状态
初步想到的方案
数据处理放在后端,这样前端处理起来会比较简单。
问题:因为这是一个数据提交的过程,在不提交的情况下,后端是要创建一个临时表来保存这些数据,只有数据提交之后才能存到应用表里,这样的话 每次数据编辑都要新创建表,并销毁表,不太好。
处理方式
会存在两种形式,第一次编辑时已选数据为空,之后再进来是有数据的
1. 在进入该页面时请求获取已提交的数据
2. 将数据存储到allSelectedData中,并同时存储到choosedData中,以数据id为key创建choosedDataKeys
3. 将allSelectedData切割分页,页面用tableData数据存储
4. 在切换pageIndex,size,增加或删除数据的时候重新将allSelectedData切割分页
5. 增加数据时,用choosedDataKeys作为勾选标识
6. 新勾选的数据及keys会被插入到choosedData及choosedDataKeys中
7. 在确定插入时,将choosedData同步给allSelectedData并重新分页
涉及到的数据包
allSelectedData 所有被确定要提交的网格
choosedData 用来同步所有网格中被勾选的状态
choosedDataKeys
tableData 每页几条的展示数据
allData 所有网格