Và bạn nghĩ rằng chúng ta đã hoàn tất việc cải thiện XHR!
Trong một thời gian, phương thức send()
bị nạp chồng của XHR2 đã hỗ trợ việc gửi ArrayBuffer
(mảng byte thô).
Chrome 22 (Canary hiện tại) không dùng tính năng này nữa mà thay vào đó là gửi ArrayBufferView
. Mảng được nhập bằng JS chỉ là các ArrayBufferView
đặc biệt, vì vậy, tất cả những điều này thực sự có nghĩa là giờ đây, bạn có thể gửi trực tiếp một mảng được nhập qua mạng mà không cần chạm vào vùng đệm cơ bản của mảng đó. Thay đổi này phù hợp với các bản cập nhật gần đây đối với thông số kỹ thuật XMLHttpRequest2.
Ví dụ: thay vì gửi 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);
Chỉ cần gửi chính mảng đã nhập:
xhr.send(uInt8Array);
Cuối cùng, tính năng gửi ArrayBuffers
sẽ bị xoá, nhưng hiện tại, bạn sẽ nhận được cảnh báo của bảng điều khiển khi cố gắng gửi vùng đệm.
Như thường lệ, bạn có thể theo dõi chromestatus.com để nắm bắt những thay đổi này.