0

我正在尝试根据需要修改此示例: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 调用返回了我需要的数据。你能指出我哪里出错了吗?

提前谢谢了。

4

2 回答 2

0

不要那样做,这是行不通的。首先调用 AJAX,并在回调中为其创建新图表。并且不要为相同的点使用 AJAX 二十次。

结帐示例:

于 2013-09-26T10:45:03.890 回答
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/

于 2013-09-26T11:03:51.533 回答