如何加载一次日志文件,然后在 JavaScript 中附加新日志?

问题描述

我有一个 JavaScript 函数,它加载一个 csv 文件并将其内容粘贴到一个 c3js 图形中,该函数每 10 秒重新加载一次实时数据,它看起来像这样:

function parseData(createGraph) {
    Papa.parse("../csv_files/traffic.csv",{
        download: true,complete: function(results) {
            createGraph(results.data);
        }
    });
}
function createGraph(data) {
    var Arrx = ['x'];
    var Arry = ['Frequency'];
    var dates = []; 
    for (var i = 0; i < data.length-1; i++) {
        if(moment(data[i][0],"DD-MM-YYYY",true).isValid()){
            dates.push(data[i][0]);
        }
    }
    var result = foo(dates);        
    for (var i = 0; i < result[0].length; i++){
        Arrx.push(result[0][i]);
        Arry.push(result[1][i]);
    }   
    var chart = c3.generate({
        size: {
            width: 1050
        },data: {
            x: 'x',xFormat: '%d-%m-%Y',columns: [Arrx,Arry]
        },axis: {
            x: {
                label: 'Date',type: 'timeseries',tick: {
                    format: '%d-%m-%Y'
                }
            },y: {
                label: 'Frequency'
            }
        },bindto: '#chart'
    });
}

问题是我必须在每次重新加载时加载文件,随着文件变大,它开始花费越来越多的时间,JavaScript 中是否有一种方法可以在开始时只加载一次,然后附加新日志实时到图表?

解决方法

在页面初始化时,如果 csv 数据可用,请检查本地/会话存储。如果不可用,则将 csv 数据加载/保存到本地/会话存储并继续下一步。

如果您需要覆盖本地存储检查,则将查询参数传递给 url。我想这对你有用。

这是localstorage的指南