A ty myślałeś, że skończyliśmy ulepszać XHR!
Od jakiegoś czasu przeciążona metoda send()
w XHR2 obsługuje wysyłanie ArrayBuffer
(surowego tablicowego ciągu bajtów).
W Chrome 22 (obecna wersja Canary) ta funkcja została wycofana i zastąpiona wysyłaniem ArrayBufferView
. Typowe tablice JS to tylko specjalne ArrayBufferView
, co oznacza, że teraz możesz wysyłać typową tablicę bezpośrednio przez sieć bez dotykania jej podstawowego bufora. Ta zmiana jest zgodna z ostatnimi aktualizacjami specyfikacji XMLHttpRequest2.
Na przykład zamiast wysyłać 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);
Wystarczy wysłać samą tablicę:
xhr.send(uInt8Array);
Ostatecznie wysyłanie ArrayBuffers
zostanie usunięte, ale na razie podczas próby wysłania bufora pojawią się ostrzeżenia w konsoli.
Jak zawsze, możesz śledzić tego typu zmiany na stronie chromestatus.com.