PapaParse 如何从 http 流式传输?
How does PapaParse stream from http?
PapaParse CSV 解析器具有通过普通 http 进行流式解析的功能:
Papa.parse("http://example.com/big.csv", {
download: true,
step: function(row) {
console.log("Row:", row.data);
},
complete: function() {
console.log("All done!");
}
});
我过去曾尝试通过 onprogress
事件在浏览器中实现流解析器,但我发现在请求完成之前,浏览器不会授予对 xhr.responseText
的访问权限。 PapaParse 是如何做到这一点的?
我会对一个库或 jQuery 为纯文本执行此操作的插件非常感兴趣。
Papa Parse 使用范围 header 请求文件的特定字节,一次一个。我在周五的 UtahJS 会议上给出了 talk about this。虽然演示更多的是关于从磁盘本地加载文件,但同样的原理也适用于远程文件——只是机制不同。
自己实现起来并不难,但要小心 bugs in the browser 如果碰巧遇到这种情况。
PapaParse CSV 解析器具有通过普通 http 进行流式解析的功能:
Papa.parse("http://example.com/big.csv", {
download: true,
step: function(row) {
console.log("Row:", row.data);
},
complete: function() {
console.log("All done!");
}
});
我过去曾尝试通过 onprogress
事件在浏览器中实现流解析器,但我发现在请求完成之前,浏览器不会授予对 xhr.responseText
的访问权限。 PapaParse 是如何做到这一点的?
我会对一个库或 jQuery 为纯文本执行此操作的插件非常感兴趣。
Papa Parse 使用范围 header 请求文件的特定字节,一次一个。我在周五的 UtahJS 会议上给出了 talk about this。虽然演示更多的是关于从磁盘本地加载文件,但同样的原理也适用于远程文件——只是机制不同。
自己实现起来并不难,但要小心 bugs in the browser 如果碰巧遇到这种情况。