【发布时间】:2022-10-03 10:36:26
【问题描述】:
我想在 JavaScript 中使用 Papa parse 分块读取一个大型的本地 CSV 文件,以便在读取文件时应用程序不会卡住。 “本地”是指该文件位于服务器端,可供 javascript 访问(它不是来自用户的计算机)。应用程序没有使用 Node.js。
Papa 解析文档建议这可以通过将 step 或 chunk(两者都不是)传递给 parse 函数以及文件对象来完成:
Papa.parse(file,
{worker: true,
chunk: function(rows) { ... },
complete: ...))
但是它并没有说明file 应该是什么。这里的其他答案 (How can I read a local file with Papa Parse?) 说它应该是一个可流式传输的文件对象,但所有答案都依赖于 node.js 中的require(\'fs\'),这个应用程序不使用它。
有没有办法使用 Papaparse 以可以在浏览器中运行的方式读取本地(服务器端)文件,没有需要node.js?
我试过的方法是这样的:
$.get(\"./file.csv\", function(contents) {
// pass contents of file to Papa.parse
Papa.parse(contents, {chunk: ...});
});
但是,由于 csv 文件的内容作为字符串传递给 Papa.parse,因此浏览器在运行时确实会变得缓慢且无响应,这可能是因为将字符串加载到内存中很慢。我怎样才能使它真正从文件对象流式传输?谢谢。
标签: javascript browser streaming papaparse