Arrivé ! xhr.send(ArrayBufferViews)

Eric Bidelman

Et voilà, vous pensez que nous avons fini d'améliorer XHR !

Depuis quelque temps maintenant, la méthode send() surchargée de XHR2 prend en charge l'envoi d'un ArrayBuffer (tableau d'octets bruts).

Chrome 22 (Canary actuel) abandonne cette fonctionnalité en la remplaçant par l'envoi de ArrayBufferView à la place. Les tableaux typés JS ne sont que des ArrayBufferView spéciaux. Cela signifie que vous pouvez désormais envoyer un tableau typé directement sur le réseau sans toucher au tampon sous-jacent. Cette modification fait partie des récentes mises à jour de la spécification XMLHttpRequest2.

Ainsi, par exemple, au lieu d'envoyer une 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);

Envoyez simplement le tableau saisi:

xhr.send(uInt8Array);

À terme, l'envoi de ArrayBuffers sera supprimé, mais pour le moment, vous recevrez des avertissements dans la console lorsque vous tenterez d'envoyer un tampon.

Comme toujours, vous pouvez suivre ce type de modifications sur chromestatus.com.