我如何只重绘饼图一次,而不是为它具有的每个数据标签重绘一次?
How do i redraw a pie Chart only once, instead of once for every datalabel it has?
我正在处理来自 HighChart 的图表并实现了一个按钮,当按下该按钮时,它会从屏幕上删除图例并呈现图表以使用清空 space。但是在使用饼图时,它似乎为图表具有的每个数据标签重新绘制图表,从而将创建图表需要 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));
的轻微改编
显然我还在使用旧版本的 highcharts,更新到最新版本解决了问题。
我正在处理来自 HighChart 的图表并实现了一个按钮,当按下该按钮时,它会从屏幕上删除图例并呈现图表以使用清空 space。但是在使用饼图时,它似乎为图表具有的每个数据标签重新绘制图表,从而将创建图表需要 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));
的轻微改编
显然我还在使用旧版本的 highcharts,更新到最新版本解决了问题。