如何只重新绘制一次饼图,而不是为它的每个数据标签绘制一次

How do i redraw a pie Chart only once, instead of once for every datalabel it has?

本文关键字:一次 绘制 标签 数据 新绘制      更新时间:2023-09-26

我正在HighChart中处理图表,并实现了一个按钮,当按下该按钮时,将图例从屏幕上删除,并渲染图表以使用清空的空间。但是,当使用饼图时,它似乎会为图表中的每个数据标签重新绘制图表,从而将加载时间增加到半分钟,创建一个需要2秒的图表。

 (function(b,a)
 {
 if(!b){
     return
 }
 var c = b.Chart.prototype,d=b.Legend.prototype;b.extend(c,
 {
     legendSetVisibility:function(h)
     {
         var i=this,k=i.legend,e,g,j,m=i.options.legend,f,l;
         if(m.enabled==h)
         {
             return
         }
         m.enabled=h;
         if(!h)
         {
             d.destroy.call(k);
             e=k.allItems;
             if(e)
             {
                 for(g=0,j=e.length;g<j;++g)
                 {
                     e[g].legendItem=a
                 }
             }
             k.group={}
         }
         i.animation= false;
         c.render.call(i);
     },
     legendToggle:function()
     {
         this.legendSetVisibility(this.options.legend.enabled^true)
     }
 })
}(Highcharts));

此代码是对http://jsfiddle.net/P2g6H/

显然我仍在使用旧版本的highcharts,更新到最新版本解决了问题。