Geldi! xhr.send(ArrayBufferViews)

Eric Bidelman

Siz de XHR'yi iyileştirdiğimizi düşündünüz.

Bir süredir XHR2'nin aşırı yüklenen send() yöntemi, ArrayBuffer (ham bayt dizisi) göndermeyi destekliyor.

Chrome 22'de (mevcut Canary), özellik yerine ArrayBufferView öğeleri göndererek bu özelliği kullanımdan kaldırıyor. JS Türündeki Diziler yalnızca özel ArrayBufferView öğeleridir. Yani, yazılan bir diziyi artık alttaki arabelleğe dokunmadan doğrudan kablo boyunca gönderebilirsiniz. Bu değişiklik, XMLHttpRequest2 spesifikasyonunda yapılan son güncellemelerle uyumludur.

Dolayısıyla, örneğin ArrayBuffer göndermek yerine:

var xhr = new XMLHttpRequest();
xhr.open('POST', '/server', true);
xhr.onload = function(e) { ... };

var uInt8Array = new Uint8Array([1, 2, 3]);

xhr.send(uInt8Array.buffer);

Yazılan dizinin kendisini göndermeniz yeterlidir:

xhr.send(uInt8Array);

Bir süre sonra ArrayBuffers kodunun gönderilmesi kaldırılacaktır ancak şu an için arabellek göndermeye çalışırken konsol uyarıları alacaksınız.

Her zaman olduğu gibi, chromestatus.com adresini ziyaret ederek bu tür değişiklikleri takip edebilirsiniz.