javascript - 如何处理流式 HTTP GET 数据?

标签 javascript jquery ajax node.js streaming

现在,我有一个 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/

相关文章:

javascript - 如何为 asp.button 设置替代文本

javascript - 刷新页面时标题外观不起作用

node.js - 尝试使用普通 JS 发送请求 GET 来表达时,响应为空

javascript - HTML 选择下拉菜单 ID 未传递给 Javascript 函数 getelementbyid 值为 null

Javascript 逐行比较

javascript - 从 itunes connect 获取所有订阅组和产品 ID

javascript - 如何在 Javascript 中查找/创建 GPS 点的凸包

jQuery 弹跳效果

javascript - 由于另一个函数,jQuery 事件没有被第二次触发

c# - 如何从网站获取DOM数据