Javascript 使用节点下载高图表数据,但不在浏览器中显示

Javascript 使用节点下载高图表数据,但不在浏览器中显示,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,我对高分图表有点不理解。我可以从浏览器下载图表,但它不显示 这是我的javascript文件 chart.js var cpvmPartners = []; var cpvmPlannedCPM = []; graphData = [] $(function(){ $.getJSON('/cpvmdata', function(data) { for(k in data){ graphData.push([data[k]['partner']

我对高分图表有点不理解。我可以从浏览器下载图表,但它不显示

这是我的javascript文件

chart.js

var cpvmPartners = [];
var cpvmPlannedCPM = [];
graphData = []


$(function(){
    $.getJSON('/cpvmdata', function(data) {
        for(k in data){
             graphData.push([data[k]['partner'],data[k]['plannedcpm']])
        }
});


    $(function () {
        $('#cpvmSummary').highcharts({
            chart: {
                type: 'column'
            },
            title: {
                text: 'World\'s largest cities per 2014'
            },
            subtitle: {
                text: 'Source: <a href="http://en.wikipedia.org/wiki/List_of_cities_proper_by_population">Wikipedia</a>'
            },
            xAxis: {
                type: 'category',
                labels: {
                    rotation: -45,
                    style: {
                        fontSize: '13px',
                        fontFamily: 'Verdana, sans-serif'
                    }
                }
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'Population (millions)'
                }
            },
            legend: {
                enabled: false
            },
            tooltip: {
                pointFormat: 'Population in 2008: <b>{point.y:.1f} millions</b>'
            },
            series: [{
                name: 'Population',
                data: graphData ,
                dataLabels: {
                    enabled: true,
                    rotation: -90,
                    color: '#FFFFFF',
                    align: 'right',
                    format: '{point.y:.1f}', // one decimal
                    y: 10, // 10 pixels down from the top
                    style: {
                        fontSize: '13px',
                        fontFamily: 'Verdana, sans-serif'
                    }
                }
            }]
        });
    });
}); 
var cpvmPartners=[];
var cpvmPlannedCPM=[];
图形数据=[]
$(函数(){
$.getJSON('/cpvmdata',函数(数据){
用于(数据中的k){
graphData.push([data[k]['partner'],data[k]['plannedcpm']))
}
});
$(函数(){
$('cpvmSummary')。高图({
图表:{
类型:“列”
},
标题:{
文字:“2014年世界最大城市”
},
副标题:{
文本:“来源:”
},
xAxis:{
类型:'类别',
标签:{
轮调:-45,
风格:{
fontSize:'13px',
fontFamily:“Verdana,无衬线”
}
}
},
亚克斯:{
分:0,,
标题:{
正文:“人口(百万)”
}
},
图例:{
已启用:false
},
工具提示:{
pointFormat:'2008年人口:{point.y:.1f}百万'
},
系列:[{
姓名:'人口',
数据:graphData,
数据标签:{
启用:对,
轮换:-90,
颜色:“#FFFFFF”,
对齐:“右”,
格式:'{point.y:.1f}',//一位小数
y:10,//从顶部向下10像素
风格:{
fontSize:'13px',
fontFamily:“Verdana,无衬线”
}
}
}]
});
});
}); 
这是html

 <div class="container">

        <!-- Portfolio Item Heading -->
        <div class="row">
            <div class="col-lg-12">
                <h1 class="page-header">CPVM Summary
           <!--          <small>CPVM Summary</small> -->
                </h1>
            </div>
        </div>
   <!-- jQuery -->
    <script src="js/jquery.js"></script>

    <script src="js/cpvmGraphs.js"></script>


    <!-- Bootstrap Core JavaScript -->
    <script src="js/bootstrap.min.js"></script>


    <!-- High Charts -->
    <script src="https://code.highcharts.com/highcharts.js"></script>
    <script src="https://code.highcharts.com/modules/exporting.js"></script>

CPVM摘要

不知道在这一点上还能做什么,为什么它在一个地方加载,而不是在另一个地方加载,任何信息都将不胜感激

这是因为您在一个“on DOM ready”函数中获取数据,然后在另一个函数中呈现图表。您获取的数据是异步的,因此它在返回之前不在那里,但是您需要在返回之前渲染图表

要解决这个问题,请将所有图表内容放在一个单独的函数中,我们称之为renderChart,然后在获得JSON后,在另一个函数中,呈现图表并传递数据

以下是文档中的一个示例:

$(document).ready(function() {

    var options = {
        chart: {
            renderTo: 'container',
            type: 'spline'
        },
        series: [{}]
    };

    $.getJSON('data.json', function(data) {
        options.series[0].data = data;
        var chart = new Highcharts.Chart(options);
    });

});

控制台中是否存在任何类型的错误?这是因为您在一个“一个dom就绪”函数中获取数据,然后在另一个函数中呈现图表。您的数据获取是异步的,因此在它返回之前它不在那里,但是您需要在返回之前呈现图表。要解决此问题,请将所有图表内容放在一个单独的函数中,我们称之为renderChart,然后在获取json后,在另一个函数中呈现图表,并将数据传入。。。这有意义吗?@Omarjmh完美!谢谢。见下文。。获取带有链接的书面答案