您以为我们已经完成了 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 及时了解这类更改。