Javascript HighCharts showLoading()未按预期工作
我有一个图表和一个按钮,它调用了一个非常繁重的处理,如本例所示:Javascript HighCharts showLoading()未按预期工作,javascript,highcharts,loading,Javascript,Highcharts,Loading,我有一个图表和一个按钮,它调用了一个非常繁重的处理,如本例所示: $按钮。单击(函数(){ chart.showLoading(); 对于(var i=0;i要提高性能,可以通过将参数设置为false,要求highcharts在添加序列时不要重新绘制。添加完成后,可以调用 这不是最漂亮的解决方案,但您可以在一个时间段内绘制图表,以便有足够的时间显示加载消息 例如: //按钮处理程序 var isLoading=false, $按钮=$(“#按钮”), 图表 图表=高图。图表('容器'{ xAx
$按钮。单击(函数(){
chart.showLoading();
对于(var i=0;i要提高性能,可以通过将参数设置为false
,要求highcharts在添加序列时不要重新绘制。添加完成后,可以调用
这不是最漂亮的解决方案,但您可以在一个时间段内绘制图表,以便有足够的时间显示加载消息
例如:
//按钮处理程序
var isLoading=false,
$按钮=$(“#按钮”),
图表
图表=高图。图表('容器'{
xAxis:{
类别:[一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月]
},
系列:[{
数据:[29.9,71.5,106.4,129.2,144.0,176.0,135.6148.5,216.4194.1,95.6,54.4]
}]
});
$按钮。单击(函数(){
chart.showLoading();
setTimeout(函数(){
对于(变量i=0;i<20;i++){
var d=[];
对于(var j=0;j<12;j++){
d、 推送(Math.random()*250)
}
chart.addSeries({
数据:d
},假);
}
chart.redraw();
chart.hideLoading();
}, 100);
});
显示加载
我的代码的“重处理”功能只是一个例子。我不使用addSeries
功能。无论如何,我感谢您的回复,并引用了我也在考虑的setTimeout
。根据重处理涉及的内容,您可以使用showLoading()只需更改图表的显示-它不会做更多的事情-如果您的循环冻结了浏览器,那么您需要将循环移动到webworker进程,或者使用一些异步技术,如下面的答案中所示
$button.click(function () {
chart.showLoading();
for (var i=0;i<20;i++) {
var d=[];
for (var j=0;j<12;j++) {
d.push(Math.random()*200)
}
chart.addSeries({data:d});
}
chart.hideLoading();
});