你认为我们已经改进了 XHR!
一段时间了,XHR2 的重载 send()
方法支持发送 ArrayBuffer
(原始字节数组)。
Chrome 22(当前的 Canary 版)废弃了此功能,取而代之的是发送 ArrayBufferView
。JS 类型化数组只是特殊的 ArrayBufferView
,因此实际上意味着您现在可以直接通过网络发送类型化数组,而无需接触其底层缓冲区。这项更改与 XMLHttpRequest2 规范的近期更新一致。
例如,不要发送 ArrayBuffer
:
var xhr = new XMLHttpRequest();
xhr.open('POST', '/server', true);
xhr.onload = function(e) { ... };
var uInt8Array = new Uint8Array([1, 2, 3]);
xhr.send(uInt8Array.buffer);
只需发送类型化数组本身即可:
xhr.send(uInt8Array);
最终,系统会移除发送 ArrayBuffers
功能,但目前,您在尝试发送缓冲区时会收到控制台警告。
与往常一样,您可以关注 chromestatus.com,及时了解这些类型的变更。