jquery - 异步加载 Google 图表?

标签 jquery asynchronous google-visualization

我有以下代码来加载 Google 图表:

function drawChart1() {
        var jsonData1 = $.ajax({
        url: "library/json_netsales.php",
        dataType:"json",
        async: false
    }).responseText;

    // Create our data table out of JSON data loaded from server.
    var data1 = new google.visualization.DataTable(jsonData1);
    var formatter = new google.visualization.NumberFormat(
        {negativeParens: true, pattern: '$###,###'});
    formatter.format(data1, 1);

    // Instantiate and draw our chart, passing in some options.
    var chart1 = new google.visualization.AreaChart(document.getElementById('chart_netsales'));
    chart1.draw(data1, {width: 300, height: '100%', hAxis: { textPosition: 'none', baselineColor: '#fff' }, vAxis: { textPosition: 'none', baselineColor: '#fff', gridlines: {count: 0}, minValue: 0}, chartArea:{width:"100%",height:"80%"}, legend: {position: 'none' }, backgroundColor: '#232323', colors: ['#fff']});
}

现在的问题是异步标志已关闭,这意味着我会出现页面锁定。我想异步加载它,但我尝试让它工作失败了。

我认为将 .responseText 之后的所有内容移至成功处理程序中并删除 async:false 行将使此工作正常进行,但我错了。

关于如何异步加载 Google 图表有什么想法吗?

最佳答案

这应该有效:

function drawChart1() {
    $.ajax({
        url: "library/json_netsales.php",
        dataType: "json",
        success: function (json) {
            // Create our data table out of JSON data loaded from server.
            var data1 = new google.visualization.DataTable(json);
            var formatter = new google.visualization.NumberFormat({
                negativeParens: true,
                pattern: '$###,###'
            });
            formatter.format(data1, 1);

            // Instantiate and draw our chart, passing in some options.
            var chart1 = new google.visualization.AreaChart(document.getElementById('chart_netsales'));
            chart1.draw(data1, {
                width: 300,
                height: '100%',
                hAxis: {
                    textPosition: 'none',
                    baselineColor: '#fff'
                },
                vAxis: {
                    textPosition: 'none',
                    baselineColor: '#fff',
                    gridlines: {count: 0},
                    minValue: 0
                },
                chartArea: {
                    width:"100%",
                    height:"80%"
                },
                legend: {position: 'none'},
                backgroundColor: '#232323',
                colors: ['#fff']
            });
        }
    });
}

关于jquery - 异步加载 Google 图表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19145762/

相关文章:

ios - 轻松异步图片下载 UIImage View

angular - Observable 在 redux 的状态改变后没有更新

javascript - 带有 geohash 的谷歌图表

javascript - Google Graph API 自定义工具提示加粗

javascript - Google Geochart (1.1) 工具提示样式

javascript - 来自 jQuery 类的多个 div 的鼠标悬停()事件

javascript - 有没有办法给每个 div 一个唯一的 id 而不必每次都输入它?

javascript - React-Redux:如何使用异步调用中的数据填充组件的加载属性?

javascript - 带有 jquery.chosen 的 Angularjs - ngModel 没有得到更新

javascript - Flexigrid 仅显示 30 条记录