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 如果碰巧遇到这种情况。