Highchart-Serie Update in Javascript

Ich versuche, eine Highchart-Reihe zu aktualisieren, indem ich ein neues Array mit den aktuellen Daten aus der Datenbank generiere. Aus irgendeinem Grund kann ich jedoch nur nacheinander Informationen zum Durchgehen der Daten finden. Sobald ein Diagramm erstellt wurde, wird nur derselbe Code erneut ausgeführt, damit sich die Beschriftungen usw. nicht ändern - nur [pointStart] und [data] ändern sich.

Gibt es eine Möglichkeit, alle Daten als Ganzes zu aktualisieren? Ich habe es auch nicht geschafft, eine for-Schleife zum korrekten Funktionieren zu bringen.

function generateSeries(data){
    var cData = [];
    var rollup = data.rollupData;
    cData['type'] = 'line';
    cData['pointStart'] = convertDateTime(data.lastMinute);
    cData['pointInterval'] = 60 * 1000;
    for(var i in rollup){
        var x = new Array();
        var v = rollup[i].rttSystem;
        switch(v){
            case('line'): var vn = ' (L)'; break;
            case('node'): var vn = ' (N)'; break;
            case('module'): var vn = ' (M)'; break;
            default: var vn = '';
        }
        x['name'] = rollup[i].rollupName + vn;
        x['data'] = rollup[i].kpiData;
        cData.push(x);
    }
    return cData;
}

Die Ausgabe des Arrays sieht aus wie [0: ['name': 'California', 'data': [0.002, 0.003 ...], 1: ['name': 'Oklahoma', 'data': [0.001, 0.002 ...], 'type': 'line', 'pointStart': '', 'pointInterval': 60 * 1000]

var chart = new Highcharts.Chart({
    chart: {
    ...
    },
    series: generateSeries(data)
    }, function(chart){
        setInterval(function(){
            var newSeries = generateSeries(data);
            // Udate the series again with the current data
        },60000);
    }
});

Update: Das macht die Serie aber nicht den pointStart.

if(chart.series.length > 1){
    var s = 0;
    for(var i in newSeries){
        chart.series[s].setData(newSeries[i].data);
        chart.series[s].pointStart = newSeries[i].pointStart;
        s++;
    }
}else{
    chart.series[0].setData(newSeries[0].data);
    chart.series[0].pointStart = newSeries[0].pointStart;
}

Antworten auf die Frage(2)

Ihre Antwort auf die Frage