当一个highchart完全加载?(when is a highchart completely l

2019-06-25 14:46发布

我看到这个代码: http://jsfiddle.net/AVygG/

就是highchart被完全加载点的时候我很好奇? 我highcharts文档中看到的事件:负载:应该做的是能够调用回调函数时highchart完全加载的魔力。

如果它被完全加载,那么我可以假设VAR图表应该已经值警报持久性有机污染物是什么时候? 那是一个很好的基础,该图已加载?

我问的原因是我工作的highchart显然没有得到完全IE8加载另一个代码。 看起来像highcharts潜在地具有在它的元素的加载的竞争条件。

谢谢!

$(function () {
// create the chart
var chart = new Highcharts.Chart({
    chart: {
        renderTo: 'container',
        events: {
            load: function(event) {
                alert ('Chart loaded');
            }
        }        
    },
    xAxis: {
    },

    series: [{
        animation: false,
        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]     
    }]
});

});

Answer 1:

Highcharts有回调函数

 var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            events: {
                redraw: function(event) {
                    alert ('Chart loaded');
                }
            }        
        },
        series: [{
            animation: false,
            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]     
        }]
    },function(chart){

alert('LOADED');

});


Answer 2:

在负载回调函数,则可以通过使用“this”指针访问图表对象。

        events: {
            load: function(event) {
                alert ('Chart loaded with series :'+ this.series[0].name);
                console.log(this);
            }
        }        

的jsfiddle: http://jsfiddle.net/msjaiswal/AVygG/25/



Answer 3:

尝试与redraw事件。 加负荷后,又经过了一系列与图表大小触发此事件。

$(function () {
    // create the chart
    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            events: {
                redraw: function(event) {
                    alert ('Chart loaded');
                }
            }        
        },
        series: [{
            animation: false,
            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]     
        }]
    });
});

从官方Highcharts参考重绘事件: http://api.highcharts.com/highcharts#chart.events.redraw

和演示: http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/chart/events-redraw/



Answer 4:

这是回答,但不强调不够。 Highcharts文档说明确

......在大多数情况下,图是建立在一个线程,但在Internet Explorer 8版本以下图表有时启动之前文件已经准备好,在这些情况下图表对象不会调用后直接完成new Highcharts.Chart() 因此,代码依赖于新建图表对象上应始终在回调运行。

因此,处理图表对象在IE8 必须在回调来完成 ,即new Highcharts.Chart(options, function(chart) { ... }) 你也可以使用function() { ... }并使用this函数中。

在问候您的具体问题重新加载消息。 我不得不这样做回调,但它的作品。

chart1 = new Highcharts.Chart(options, function(){
  this.showLoading();
});


Answer 5:

在角项目,我不得不使用setTimeout()函数来获取宽度如下正常工作:

setTimeout(()=>this.chart.reflow())


文章来源: when is a highchart completely loaded?