และคุณคิดว่าเราปรับปรุง XHR สำเร็จแล้ว
ขณะนี้ เมธอด send()
ที่มากเกินไปของ XHR2 รองรับการส่ง 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