javascript - HighCharts showLoading() 未按预期工作

标签 javascript highcharts loading

我有一个图表和一个按钮,它调用非常繁重的处理,如本例所示:http://jsfiddle.net/v97e5vs1/1/

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

但是,showLoading 函数无法按预期工作:浏览器窗口会挂起,直到处理完成。

出了什么问题?

最佳答案

为了提高性能,您可以通过设置redraw来要求highcharts在添加系列时不要重绘。参数为false。添加完成后redraw可以调用。

这不是最漂亮的解决方案,但您可以在setTimeout内绘制图表。以便有足够的时间显示加载消息。

示例:

// the button handler
var isLoading = false,
  $button = $('#button'),
  chart;

chart = Highcharts.chart('container', {

  xAxis: {
    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
  },

  series: [{
    data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
  }]
});



$button.click(function() {
  chart.showLoading();

  setTimeout(function() {
    for (var i = 0; i < 20; i++) {
      var d = [];
      for (var j = 0; j < 12; j++) {
        d.push(Math.random() * 250)
      }
      chart.addSeries({
        data: d
      }, false);
    }

    chart.redraw();
    chart.hideLoading();
  }, 100);
});
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.highcharts.com/highcharts.js"></script>

<div id="container" style="height: 400px"></div>
<button id="button">Show loading</button>

关于javascript - HighCharts showLoading() 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45234034/

相关文章:

javascript - mongodb 日期时间过滤和聚合

android - 如何将 "Loading . . ."对话框添加到 Android 应用程序

ios - Xcode 在 View 可见后加载缓慢的东西

javascript - 编写类似于 vlookup 的 google Javascript

javascript - 无法从 W3schools.com 的移动浏览器自动幻灯片更改图像大小

javascript - JointJS:Hello World 示例不起作用

java - 如何打印一个字符串而另一个字符串继续打印?

javascript - 是否可以为所需文件获得不同的范围?

javascript - 更新 Highchart 数据表单导出按钮

javascript - 未捕获的类型错误 : undefined is not a function when using highcharts