我目前有一个包含一些Highcharts图形的页面,大约22个,并且它们受用户可选择的过滤器的限制。每个过滤器交互都会删除当前序列并添加新序列。
我从两种方法开始,第一种方法是通过一个循环遍历所有已保存的实例对象,删除每个系列,
while currentChart.series.length > 0
currentChart.series[currentChart.series.length - 1].remove()
然后,在另一个遍历数组的循环之后搜索过滤器数据和
currentChart.addSeries
name: operatorName
data: data
type: options.chartType
但实施结果相当沉重。
然后我实现了一个超时让插件稍微呼吸并且没有堆叠那么多,通过在每个循环之间设置1ms超时我获得了更好的性能并且可以看到动画但是它使它有点迟缓。设置更高的超时会使页面难以导航并且过滤器更改会堆叠,因为整个图形更新会花费很多时间。
答案 0 :(得分:3)
根据我的经验,当我有大量的图表或数据点时,我通常会关闭动画。动画增加了大量的处理开销,没有它,高图通常可以很好地处理大量数据。
我猜你可以尝试删除系列并一次为每个图表添加新系列,而不是全部删除然后添加全部。我怀疑这会对你的页面响应性产生很大的不同。
chart: {
animation: false
},
plotOptions: {
series: {
animation: false
}
},
答案 1 :(得分:1)
while currentChart.series.length > 0
currentChart.series[0].destroy()