Javascript Highcharts JS在使用多个数据点进行更新时变得非常缓慢

Javascript Highcharts JS在使用多个数据点进行更新时变得非常缓慢,javascript,csv,highcharts,Javascript,Csv,Highcharts,我有一个静态本地网页,该网页应该使用csv文件中的数据进行更新(因此,当数据写入该文件时,该页面应该更新并显示新数据)。我的问题是,对于许多数据点,它会变得非常缓慢,在一定数量的点之后,它将根本不会更新 目前,页面更新的方式是每3秒读取一次文件并相应地更新。我认为更有效的方法是查看文件中最近添加的内容,然后将这些新点添加到当前数据集中。我只是不知道该怎么做 下面的代码解析csv文件,并将数据分离到要在图表中使用的阵列: function parseCSVData(csvFile) {

我有一个静态本地网页,该网页应该使用csv文件中的数据进行更新(因此,当数据写入该文件时,该页面应该更新并显示新数据)。我的问题是,对于许多数据点,它会变得非常缓慢,在一定数量的点之后,它将根本不会更新

目前,页面更新的方式是每3秒读取一次文件并相应地更新。我认为更有效的方法是查看文件中最近添加的内容,然后将这些新点添加到当前数据集中。我只是不知道该怎么做

下面的代码解析csv文件,并将数据分离到要在图表中使用的阵列:

function  parseCSVData(csvFile) {

    time = [];
    altitude = [];
    outsideTemp = [];
    insideTemp = [];
    voltage = [];
    state = [];
    velocity = [];
    degrees = [];
    // cut CSV dataFiles into lines
    var lines = csvFile.split("\n");

    $.each(lines, function (lineNumber, line) {

        if (lineNumber != 0) {   // skip header line
            var fields = line.split(",");


            var missionTime = parseInt(fields[1]);
            var altitude2 = parseInt(fields[2]);
            var outsideTemp2 = parseInt(fields[3]);
            var insideTemp2 = parseInt(fields[4]);
            var voltage2 = parseInt(fields[5]);
            var state2 = parseInt(fields[6]);
            var velocity2 = parseInt(fields[7]);
            var degrees2 = parseInt(fields[8]);

            time.push(missionTime);
            altitude.push(altitude2);
            outsideTemp.push(outsideTemp2);
            insideTemp.push(insideTemp2);
            voltage.push(voltage2);
            state.push(state2);
            velocity.push(velocity2);
            degrees.push(degrees2);

        }
    });
}
这是每3秒更新图表的代码:

setInterval(function blah() {

    var file = fileName+'?q='+Math.random();
    fillCharts(file);//which calls the parseCSVData function and fills the charts
}, 3000);
编辑:带有完整代码的粘贴箱:

EDIT2:示例csv数据:

TEAM_ID,MISSION_TIME,ALT_SENSOR,OUTSIDE_TEMP,INSIDE_TEMP,VOLTAGE,FSW_STATE,VELOCITY,DEGREES
ubArtemis,0,36,20,20,9,1,0,0
ubArtemis,1,45,18,20,9,1,6,2
ubArtemis,2,200,16,20,9,1,10,5
ubArtemis,3,65,14,19,9,1,15,3
ubArtemis,4,79,12,17,8,2,22,4
ubArtemis,5,100,10,16,8,3,30,2
ubArtemis,6,120,8,15,8,4,39,0

fillCharts
中有什么?如果你只做解析,那么它慢吗?我认为可能有一些
更新
操作可以优化。至少这是一个常见的问题-函数。在您的实际场景中,您是否从单个文件读取?对该文件的更改是否总是附加额外的行,或者现有行的内容是否被更改?@Ondkloss我在代码中添加了一个pastebin链接。fillCharts仅初始化网页的6个图表。它有200行长,而且非常重复,所以我没有粘贴它originally@SMcCrohan它应该从单个已定义的csv文件中读取,并且附加数据作为行。看起来您正在为每次更新完全重新生成所有图表。这是一种极大的矫枉过正,而且性能代价高昂。您应该找到一些方法来只更新新的/更改的数据。我不确定您的CSV会发生什么变化,但您可能需要
Chart.addSeries
Series.addPoint
Series.setData
Series.update
。。。