Я пытаюсь реализовать биржевую диаграмму 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>