The ability to transfer ArrayBuffer, Blob, File and FormData objects.
最佳答案
这是一种取代旧方法的努力,旧方法将采用“字符串”并将其部分切掉。
当你需要一个类型化的数组时,你会使用 ArrayBuffer,因为你打算使用数据,而当你只需要文件的数据时,你会使用 blob。
Blob(无论如何根据规范)具有 MIME 空间,并且比其他格式更容易放入 HTML5 文件 API(它更原生)。
ArrayBuffer 让我们可以使用类型化数组,这比使用特定字节的字符串操作要快得多,并且让我们可以定义数组段的实际类型。由于 JavaScript 不是严格类型的,因此很难获取一个可能被分解为 32 位整数或 64 位浮点数数组的文件(想象一下 8 位整数——就字符串操作和按位的性能而言,这将是一场噩梦计算,尤其是 unicode)。
据我所知,您始终可以将 blob 移动到数组缓冲区或字符串表示形式,但是这对于 XHR 来说是 native 的,这允许脚本更快,这是主要优势。
我会使用 blob 来处理文件 API,但我会使用数组来对数据进行计算。
关于xmlhttprequest - ArrayBuffer 与 Blob 和 XHR2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7778115/