现在,我有一个 node.js 服务器,它能够使用流 API 根据 GET 请求流式传输数据。 GET 请求是传输编码设置为“分块”。数据可以是 10 到 30 MB 的数量级。 (它们有时是 3D 模型)
在浏览器方面,我希望能够在下载数据时对其进行处理——我希望能够在下载数据时在 Canvas 上显示数据。因此,当数据传入时,您可以看到 3D 模型一个接一个地出现。我不需要双工通信,也不需要持久连接。但是我确实需要在下载数据后立即处理数据,而不是等待整个文件下载完成。然后在浏览器下载完数据后,我就可以关闭连接了。
我该怎么做?
JQuery ajax 仅在接收到所有数据时才回调。
我还查看了 portal.js(它是 jquery-streaming)和 socket.io,但它们似乎假设持续重新连接。
到目前为止,我已经能够使用原始 XMLHttpRequest 破解解决方案,并在 readyStead >= 2 && status == 200 时进行回调,并跟踪上次读取的位置。但是,这会将所有下载的数据保留在原始 XMLHttpRequest 中,这是我不想要的。
似乎有更好的方法来做到这一点,但我不确定它是什么。有人有建议吗?
最佳答案
oboe.js是一个用于在浏览器中流式传输响应的库。
However, that keeps all the data downloaded in the raw XMLHttpRequest, which I don't want.
我怀疑 oboe.js 也可能是这种情况,并且可能是 XMLHttpRequest 本身的限制。不确定,因为我没有直接处理过这种类型的用例。很想知道您通过努力发现了什么以及对这个问题的其他答案。
关于javascript - 如何处理流式 HTTP GET 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22158958/