我正在编写Dynamic HighChart的修订版,它允许实时数据 (js fiddle example)。我希望能够在单独的页面上执行查询并通过XMLHttpRequest Ajax命令处理它。但是,我从未使用过此命令,也不了解如何将其合并到以下代码中:
events : {
load : function() {
// set up the updating of the chart each second
var series = this.series[0];
setInterval(function() {
var x = (new Date()).getTime(), // current time
//y contains the next dynamic point
y = Math.round(Math.random() * 100);
series.addPoint([x, y], true, true);
}, 1000);
}
}
那么,我如何将XMLHttpRequest合并到代码中?在等待SQL Server的响应时,它是否重叠?
答案 0 :(得分:1)
如果你在"成功"中移动到setTimeout
,你会变得更好。然后使用可以互相攻击的setIntervals
调用ajax调用的处理程序。
// define your ajax function
// note I am using jquery's .ajax --> https://api.jquery.com/jQuery.ajax/
// it is just easier than writing your own cross browser XMLHttpRequest
ajaxCall = function(){
$.ajax({
type: "POST",
url: "some/URL",
dataType: "json"
})
.done(function( rJson ) {
var chart = Highcharts.charts[0];
var series = chart.series[0];
// do something to chart
series.addPoint([rJson.x, rJson.y], true, true);
// call this again when ajax call completes...
setTimeout(ajaxCall, 1000);
})
.fail(function() {
alert( "error" ); //do something if ajax fails
})
}
现在在图表图表中加载回调让它滚动......
// Create the chart
$('#container').highcharts('StockChart', {
chart : {
events : {
load : function() {
setTimeout(ajaxCall, 1000);
}
}
}
});