كائن DataView

اكتشف ما هو كائن DataView وكيفية استخدامه

DataViewهي وجهة نظر في ملفArrayBuffer، مثلصفائف من النوع، ولكن في هذه الحالة ، يمكن أن يكون للعناصر الموجودة في المصفوفة أحجام وأنواع مختلفة.

هذا مثال:

const buffer = new ArrayBuffer(64)
const view = new DataView(buffer)

نظرًا لأن هذا عرض لمخزن مؤقت ، يمكننا تحديد البايت الذي نريد البدء منه والطول:

const view = new DataView(buffer, 10) //start at byte 10
const view = new DataView(buffer, 10, 30) //start at byte 10, and add 30 items

إذا لم نقم بإضافة هذه الوسائط الإضافية ، فسيبدأ العرض من الموضع 0 ويحمل جميع البايت الموجودة في المخزن المؤقت.

توجد مجموعة من الطرق التي يمكننا استخدامها لإضافة البيانات إلى المخزن المؤقت:

  • setInt8()
  • setInt16()
  • setInt32()
  • setUint8()
  • setUint16()
  • setUint32()
  • setFloat32()
  • setFloat64()

هذه هي طريقة استدعاء إحدى هذه الطرق:

const buffer = new ArrayBuffer(64)
const view = new DataView(buffer)
view.setInt16(0, 2019)

افتراضيا يتم تخزين البيانات باستخدامendian كبيرةالرموز. يمكنك الكتابة فوق هذا الإعداد واستخدام endian الصغير عن طريق إضافة معامل ثالث معtrueالقيمة:

const buffer = new ArrayBuffer(64)
const view = new DataView(buffer)
view.setInt16(0, 2019, true)

إليك كيفية الحصول على البيانات من العرض:

  • getInt8()
  • getInt16()
  • getInt32()
  • getUint8()
  • getUint16()
  • getUint32()
  • getFloat32()
  • getFloat64()

مثال:

const buffer = new ArrayBuffer(64)
const view = new DataView(buffer)
view.setInt16(0, 2019)
view.getInt16(0) //2019

منذ أDataViewهوArrayBufferView، لدينا 3 خصائص للقراءة فقط:

  • bufferيشير إلى ArrayBuffer الأصلي
  • byteOffsetهو الإزاحة على ذلك المخزن المؤقت
  • byteLengthهو طول محتواها بالبايت

شيء واحد يجب مراعاته هو أن المصفوفات المكتوبة لا تسمح لنا بالتحكم في endianness:يستخدم endianness للنظام. بشكل عام ، يعمل هذا بشكل جيد ، لأن حالة الاستخدام الرئيسية كما قلنا هي استخدام المصفوفة محليًا ، باستخدام إحدى واجهات برمجة تطبيقات الوسائط المتعددة.

إذا قمت بنقل بيانات مصفوفة مكتوبة على نظام آخر ، فقد لا يتم تشفير البيانات بشكل سيئ إذا كانت تستخدم Big Endian وكنت تستخدم Little Endian.

في حال احتجت إلى هذا النوع من التحكم ،عرض البياناتهو الاختيار الأمثل.


المزيد من دروس المتصفح: