amcharts hideGraph 对比 graphs.hidden

amcharts hideGraph vs graphs.hidden

chart = initialiseGraph();
chart.graphs.forEach(function(elm){
 elm.hidden=true;
});
chart.validateNow();

function handleLegendClick( graph ) {
  var chart = graph.chart;
  for( var i = 0; i < chart.graphs.length; i++ ) {
    if ( graph.id == chart.graphs[i].id )
      chart.showGraph(chart.graphs[i]);
    else
      chart.hideGraph(chart.graphs[i]);
  }
  // return false so that default action is canceled
  return false;
}

这两种代码有什么区别,性能方面哪一种更好?

showGraph/hideGraph 方法与在每次调用后调用 validateNow 具有相同的效果,在每次调用后完全重绘整个图形,而设置 hidden在您调用 validateNow 更新图表之前,属性 什么都不做。

在循环情况下,先在多个图形上修改 hidden 属性,然后在循环结束时调用一次 validateNow 比调用 [=21= 快得多] 每次迭代的方法。