19

XHR2 差异状态

传输 ArrayBuffer、Blob、File 和 FormData 对象的能力。

  • ArrayBufferBlob有什么区别?
  • 我为什么要关心能够通过 XHR2 发送它们?(我能理解 File 和 FormData 的价值)
4

1 回答 1

17

这是一种取代旧方法的努力,旧方法将采用“字符串”并将其部分切掉。

当你需要一个类型化的数组时,你会使用 ArrayBuffer,因为你打算使用数据,而当你只需要文件的数据时,你会使用 blob。

Blob(无论如何根据规范)具有 MIME 空间,并且比其他格式更容易放入 HTML5 文件 API(它更原生)。

ArrayBuffer 让我们可以使用类型化数组,这比使用特定字节的字符串操作要快得多,并且让我们可以定义数组段的实际类型。由于 JavaScript 不是严格类型的,因此很难获取一个可能被分解为 32 位整数或 64 位浮点数数组的文件(想象一下 8 位整数——就字符串操作和按位的性能而言,这将是一场噩梦计算,尤其是 unicode)。

据我所知,您始终可以将 blob 移动到数组缓冲区或字符串表示形式,但是这对于 XHR 来说是本机的,可以让脚本更快,这是主要优势。

我会使用 blob 来处理文件 API,但我会使用数组来对数据进行计算。

于 2011-10-15T14:43:41.130 回答