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

كنا نظن أنّنا انتهينا من تحسين بروتوكول XHR.

منذ فترة، تتيح طريقة send() المثقلّة في XHR2 إرسال ArrayBuffer (صفيف وحدات بايت خام).

يوقف الإصدار 22 من Chrome (إصدار 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.