Echarts dataindex变化导致重绘(未解决)

我在做网络流量可视化的时候遇到了一个问题,echarts在地理坐标系上通过lines来对网络包的起始点到终点进行连线。但是发现了一个问题,同样的一条线在每次setoption更新的时候常常出现重新绘制的情况(即会播放一次更新动画)。

在我将信息打印出来后,便定位到了问题,每次传入的是一个对象数组,对象包含了起点终点的名字以及一个记录了起点与终点的数组,传入的数组的元素位置是不确定的。而echarts绘制数据时有一个参数 dataIndex ,即使一个对象没有发生改变,但是当其在对象数组中的索引发生了变化的时候,也会导致重新画线,

我没有找到特别好的解决方案,我采取了下面几种方法来减少影响。

  1. 增加了超时的时间

    最开始流量可视化显示的是十秒内活跃的连接,时间过短会导致很多地点间的连接很快的就被标记为过期,导致数组发生频繁变化(尤其是有元素减少)

  2. 对数组先进行排序

    在将数组传递给echarts组件之前,我将数组按照对象的某一属性(如城市名)先进行排序,也能一定程度上减少数组元素索引的变化。不过在遇到有排序较高的元素插入或者从数组中删除的时候,也无法避免重新绘制。

文章目录