以下は私のコードです。最初にJSONを使用してデータベースからデータをフェッチし、その後最初の15行をチャートにバインドし、setInterval関数で1秒間隔で1行を継続的にバインドしています。こんにちは") 最初の結果が得られません。アラートなしで結果を得るにはどうすればよいですか?
$(function () {
$(document).ready(function () {
var Data = "";
var dataarray = [];
var IdArray = [];
var counter = 0;
var chart;
$('#container').highcharts({
chart: {
type: 'spline',
animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function () {
var series = this.series[0];
setInterval(function () {
var i = 16 + counter;
var x = IdArray[i], // current time
y = dataarray[i];
series.addPoint([x, y], true, true);
counter = counter + 1;
}, 1000);
}
}
},
title: {`enter code here`
text: 'Live HighChart From Database'
},
xAxis: {
type: 'decimal'
},
yAxis: {
title: {
text: 'Value'
}
},
series: [{
name: 'Data from database',
data: (function () {
// generate an array of random data
$.ajax({
type: 'POST',
dataType: 'json',
contentType: 'application/json',
url: 'LiveHighchart.aspx/GetData',
data: '{}',
success:
function (response) {
Data = response.d;
for (var i = 0; i < Data.length; i++) {
dataarray[i] = Data[i].random;
IdArray[i] = Data[i].Id;
}
}
});
var data = [];
alert("hi");
for (var i = 0; i < 15; i++) {
data.push({
x: IdArray[i],
y: dataarray[i]
});
}
return data;
})()
}]
});
});
});
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto">
</div>
</div>
</form>
</body>
</html>