Javascript 如何有效地从highchart/highstock中删除所有系列,然后添加更多系列

Javascript 如何有效地从highchart/highstock中删除所有系列,然后添加更多系列,javascript,highcharts,highstock,Javascript,Highcharts,Highstock,我必须首先动态删除所有系列,然后向Highchart和Highstock添加更多系列。我使用以下方法来实现这一目标: while (highcharts.series[0]) { highcharts.series[0].remove(true); } allSeries = []; //it has all the new series to be added allSeries.forEach(function (series) { highcharts.addSerie

我必须首先动态删除所有系列,然后向Highchart和Highstock添加更多系列。我使用以下方法来实现这一目标:

while (highcharts.series[0]) {
    highcharts.series[0].remove(true);
}

allSeries = []; //it has all the new series to be added

allSeries.forEach(function (series) {
    highcharts.addSeries(series);
});

但这是一个非常繁重的操作,需要很多时间。是否有任何方法可以以经济高效的方式实现这一点,从而减少所需时间。

如果对每个序列删除操作执行重画,则会花费大量时间(series.remove()的第一个参数负责控制此操作)

如果只重新绘制一次图表,则速度会快得多-在所有删除操作完成后:

for(var i = chart.series.length - 1; i >= 0; i--) {
    chart.series[i].remove(false);
}
chart.redraw();
现场演示:


添加系列时也可以使用相同的方法。

通常有多少个系列?虽然删除大约100个系列大约需要4秒,但不应花费那么多时间。请参见此