在HighCharts中,我无法显示从ajax调用返回的数据

时间:2013-09-25 14:02:13

标签: javascript jquery ajax highcharts

我尝试根据自己的需要修改此示例:http://goo.gl/DEyGtV

我正在进行ajax调用,返回如下输出:& label = 16:44:31& value = 356

我希望标签部分是x轴,值部分是y轴。因此,我改变了这一点,

var x = (new Date()).getTime(), // current time
y = Math.random();

有了这个,

var x;
var y;
$.ajax({
    cache: false,
    url: "http://localhost/pages/ReturnData.aspx",
    success: function (data) {
        var varArr = data.toString().split("&");
        x = varArr[1].split("=")[1];
        y = varArr[2].split("=")[1];
    }
});

这一点,

series: [{
            name: 'Random data',
            data: (function() {
                // generate an array of random data
                var data = [],
                    time = (new Date()).getTime(),
                    i;

                for (i = -19; i <= 0; i++) {
                    data.push({
                        x: time + i * 1000,
                        y: Math.random()
                    });
                }
                return data;
            })()
        }]

有了这个:

series: [{
    name: 'Prim',
    data: (function () {
        // generate an array of random data
        var data = [],
        time = (new Date()).getTime(),
        i;
        for (i = -19; i <= 0; i++) {
            var xvar;
            var yvar;
            $.ajax({
                cache: false,
                url: "http://localhost/pages/ReturnData.aspx",
                success: function (data) {
                    var varArr = data.toString().split("&");
                    xvar = varArr[1].split("=")[1];
                    yvar = varArr[2].split("=")[1];
                }
            });
            data.push({
                x: xvar,
                y: yvar
            });
        }
        return data;
    })()
}]

然而情节并未绘制。我非常确定ajax调用会返回我需要的数据。你能指出我哪里出错吗?

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

不要这样做,它不会起作用。首先调用AJAX,然后在回调中创建新图表。并且不要在相同的点上使用AJAX二十次。

结帐示例:

答案 1 :(得分:0)

您可以使用系列的更新方法来更新图表数据:

$.ajax({
    cache: false,
    url: "http://localhost/pages/ReturnData.aspx",
    success: function (data) {
        // data manipulation here...
        chart.series[0].update({
           data: data
        });
    }
});

http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/series-update/