Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HighCharts showLoading()未按预期工作_Javascript_Highcharts_Loading - Fatal编程技术网

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();
});