我目前正在研究用二进制数据读取部分 XHR 响应的可能性。我们当前的方法是基于 'responseText' 属性和 base64 编码。显然,这远非最佳。
我们如何使用 XHR 读取部分 Blob/ArrayBuffer 响应?当我在 Chrome 中尝试时,整个 ArrayBuffer/Blob 在 readyState = 4 时可用,但在此之前不可用。
总而言之,在我看来:
- 读取 XHR 的 responseText 属性:可以在 readyState = 4 之前读取响应,我们可以将 base64 编码的二进制数据流式传输回客户端
- 使用 responseType = 'arraybuffer' 读取 XHR 的响应属性:不读取部分响应,但在 readyState = 4 时使整个缓冲区可用
我在这里错过了什么吗?我们可以采取什么方法来读取部分二进制响应?