javascript - 使用 papa parse 从远程 csv 文件获取 header

标签 javascript csv papaparse

我只需要从远程 csv 文件中提取 header 。

我目前的方法如下:

Papa parse 有一个流式传输数据并单独查看每一行的方法,这很棒,我可以使用 parser.abort() 终止流以防止它在第一行之后继续运行,如下所示:

Papa.parse(csv_file_and_path,{header:true, worker:true, 
    download: true,
    step: function(row, parser) 
    {
        //DO MY STUFF HERE
        parser.abort();
    }
});

这工作正常,但因为我使用的是远程文件,它必须下载数据才能读取它。即使代码在解析第一行后将控制权交还给浏览器,但在解析找到第一行并为我提供所需信息后,下载会继续很长时间,特别是对于下载可以持续很长时间的大文件在我得到我需要的东西之后的时间。

有没有更有效的方法?我可以阻止 papa parse 下载整个文件吗?

我试过用

Papa.parse(csv_file,{header:true,
download: true,
preview:1,
complete: function(results){
    //DO MY STUFF HERE
}
});

但这做同样的事情,它下载整个文件,但与第一种方法一样,在解析第一行后将控制权交还给浏览器。

最佳答案

我想出的解决方案与我原来的问题非常相似,不同之处在于我中止、完成和清除内存。

使用下面的方法,只下载文件的一个 block ,大大减少了大文件的带宽开销,因为在解析第一行后没有继续下载。

Papa.parse(csv_file,{header:true,
    download: true,
    step: function(results, parser) {

        //DO MY THING HERE

        parser.abort(); 
        results=null;   //Attempting to clear the results from memory
        delete results; //Attempting to clear the results from memory

    }, complete: function(results){

        results=null;   //Attempting to clear the results from memory
        delete results; //Attempting to clear the results from memory

    }
});

关于javascript - 使用 papa parse 从远程 csv 文件获取 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39001078/

相关文章:

java - 在java中写入CSV文件时如何放置逗号?

ios - 爸爸为 React Native 解析 CSV

javascript - 使用 Papaparse 从 CSV 文件中删除不需要的列

javascript - 为什么不 for ... in 在这里循环?

javascript - Jaggery JS 将 WSRequest 转换为 JSON

javascript - 将简单的 jQuery 动画转换为 zepto.js?

java - 读取、更新然后在 java 中创建另一个 csv 文件

excel - 如何将 .xlsx 文件转换为 .CSV 文件,维护可点击的链接

javascript - 使用 javascript/jquery 在 html 表中动态添加 csv 中的值

javascript - 如何在 javascript 中返回具有 O(n) 时间复杂度的相同字母元素?