【发布时间】:2019-01-29 14:41:31
【问题描述】:
我正在尝试实现一个需要每秒更新但每分钟累积总值的 ajax 股票图表。当它检测到新的分钟值时一切正常,但是当我尝试更新最后一个点值(最后一分钟)时,我无法得到它,因为我收到控制台错误,说它无法识别属性。
aaa2.php:107 Uncaught TypeError: Cannot read property 'update' of undefined
at Object.success (aaa2.php:107)
at i (jquery-3.1.1.min.js:2)
at Object.fireWith [as resolveWith] (jquery-3.1.1.min.js:2)
at A (jquery-3.1.1.min.js:4)
at XMLHttpRequest.<anonymous> (jquery-3.1.1.min.js:4)
这是更新最后一点的部分代码。
series[0].data[0].update(500);
这是我用来了解如何解决我的问题或任何共享解决方案的完整代码。
<script type="text/javascript">
$(function() {
var ultima_fecha;
var ultimo_tx100;
Highcharts.setOptions({
global: {
useUTC: true
}
}); // end Highcharts.setOptions
$.ajax({
url: "/proyectos/method/ajax_spline.php",
type: 'get',
dataType: "json",
success: function(DatosRecuperados) {
var matrix=new Array();
$.each(DatosRecuperados, function(i,o){
var my_utc=Date.UTC(parseInt(o.anio),parseInt(o.mes),parseInt(o.dia),parseInt(o.hora),parseInt(o.x));
if (o.x) {DatosRecuperados[i].x =parseInt(my_utc);}
if (o.y) {DatosRecuperados[i].y = parseFloat(o.y);}
});
set_fecha(DatosRecuperados[(DatosRecuperados.length)-1].x);
set_tx100(DatosRecuperados[(DatosRecuperados.length)-1].y);
//console.log(DatosRecuperados.length);
var my_chart=$('#container').highcharts('StockChart', {
chart: {
type:'spline',
animation: Highcharts.svg,
events: {
load: function () {
series = this.series[0];
}
}
},plotOptions: {
dataGrouping: {
enabled: false
},
spline: {
lineWidth: 1,
states: {
hover: {
lineWidth: 1
}
}
}
},
title: {
text: 'Live random data'
},
exporting: {
enabled: false
},
series: [{
name: 'Random data',
data: DatosRecuperados
}]
}); //end highchart
} //end success ajax
}); //end ajax
}); //end doc ready
setInterval(function () {
$.get( "/proyectos/method/ajax_spline.php?Consultar=1", function( UltimosDatos ) {
var UltimosDatos=$.parseJSON(UltimosDatos);
//var varlocalx=parseFloat(UltimosDatos[0].x);
var varlocalx=Date.UTC(parseInt(UltimosDatos[0].anio),parseInt(UltimosDatos[0].mes),parseInt(UltimosDatos[0].dia),parseInt(UltimosDatos[0].hora),parseInt(UltimosDatos[0].x));
var varlocaly=parseFloat(UltimosDatos[0].y);
if((get_fecha()==parseInt(varlocalx))&&(get_tx100()!=varlocaly)){
//console.log(varlocaly);
series[0].data[0].update(500);
}
if((get_fecha()!=parseInt(varlocalx))&&(get_tx100()!=varlocaly)){
series.addPoint([parseInt(varlocalx), varlocaly], true, true);
set_fecha(varlocalx);
set_tx100(varlocaly);
}
});}, 1000);
function get_fecha(){return ultima_fecha;}
function set_fecha(x){ ultima_fecha=x;}
function get_tx100(){return ultimo_tx100;}
function set_tx100(y){ ultimo_tx100=y;}
</script>
【问题讨论】:
-
您好 user2570870,请尝试禁用
dataGrouping: api.highcharts.com/highstock/series.line.dataGrouping.enabled -
你有任何关于如何禁用它的示例吗?
-
我已经更新了我的代码(看看上面的内容),我什至得到了相同的结果(Uncaught TypeError: Cannot read property 'update' of undefined)。
标签: javascript php jquery mysql highcharts