تم الوصول! xhr.send(ArrayBufferViews)

كنا نظن أنّنا انتهينا من تحسين طلبات 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.