我需要从远程csv文件中提取标题。
我目前的方法如下:
Papa parse有一个流式传输数据并单独查看每一行的方法,这很好,我可以使用parser.abort()来终止流,以防止它在第一行之后继续进行,这看起来如下: / p>
Papa.parse(csv_file_and_path,{header:true, worker:true,
download: true,
step: function(row, parser)
{
//DO MY STUFF HERE
parser.abort();
}
});
这很好用,但因为我使用的是远程文件,所以必须下载数据才能读取。即使代码在第一行解析后将控制权释放回浏览器,在解析找到第一行并给我提供所需信息后,下载仍会持续很长时间,特别是对于下载可以持续很长时间的大文件我得到了我需要的时间。
有更有效的方法吗?我可以阻止papa解析下载整个文件吗?
我尝试过使用
Papa.parse(csv_file,{header:true,
download: true,
preview:1,
complete: function(results){
//DO MY STUFF HERE
}
});
但这也是同样的事情,它会下载整个文件,但与第一种方法一样,在解析第一行之后将控制权交给浏览器。
答案 0 :(得分:3)
我提出的解决方案与我原来的问题非常相似,不同之处在于我中止,完成并清除了记忆。
使用以下方法,只下载文件的一个块,大大减少了大文件的带宽开销,因为在解析完第一行后没有继续下载。
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
}
});
答案 1 :(得分:0)
您可以使用PapaParse的预览选项:
Papa.parse(..., {
preview: 5, ...