العرض التكيُّفي استنادًا إلى جودة الشبكة

ميلييكا ميهاجليا
ميليكا ميهاجليا

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

تتمثل إحدى طرق التعامل مع هذا الأمر في تعديل مواد العرض التي تعرضها للمستخدمين بناءً على جودة اتصالهم. أصبح ذلك ممكنًا الآن باستخدام Network Information API التي تتيح لتطبيقات الويب الوصول إلى معلومات حول شبكة المستخدم.

التوافق مع المتصفح

  • 61
  • 79
  • x
  • x

المصدر

الاستخدام

هناك العديد من الطرق التي يمكنك من خلالها استخدام معلومات الشبكة هذه لتحسين تجربة المستخدم:

  • يمكنك التبديل بين عرض المحتوى العالي الدقة والمحتوى المنخفض الدقة استنادًا إلى شبكة المستخدم.
  • تحديد ما إذا كنت تريد تحميل الموارد مسبقًا
  • تأجيل عمليات التحميل والتنزيل عندما يكون اتصال المستخدمين بطيئًا.
  • يمكنك تفعيل وضع عدم الاتصال بالإنترنت إذا لم تكن جودة الشبكة جيدة بما يكفي لتحميل التطبيق واستخدام الميزات.
  • تحذير المستخدمين من أن تنفيذ شيء ما (مثل مشاهدة الفيديو) عبر شبكة الجوّال قد يكلفهم المال.
  • يمكنك استخدامها في الإحصاءات لجمع بيانات عن جودة شبكة المستخدمين.

تقوم العديد من التطبيقات بالفعل بشيء مماثل. على سبيل المثال، تضبط YouTube وNetflix ومعظم خدمات الفيديو الأخرى (أو خدمات مكالمات الفيديو) درجة الدقة تلقائيًا أثناء البث. عند تحميل Gmail، يتم توفير رابط للمستخدمين من أجل "تحميل HTML الأساسي (للاتصالات البطيئة)".

رابط لتحميل إصدار HTML الأساسي من Gmail عندما يكون المستخدمون في اتصالات بطيئة

آلية العمل

يحتوي الكائن navigator.connection على معلومات حول اتصال العميل. ويتم شرح خصائص هذه الفئة في الجدول أدناه.

الموقع الشرح
downlink تقدير معدل نقل البيانات بالميغابت في الثانية.
effectiveType النوع الفعّال للاتصال، مع القيم المحتملة 'slow-2g' أو '2g' أو '3g' أو '4g' (يغطي شبكة الجيل الرابع أو الإصدارات الأحدث). ويتم تحديدها استنادًا إلى الجمع بين مدة إرسال البيانات وسرعة الارتباط الهبوطي. على سبيل المثال، عند دمج الرابط السريع مع وقت الاستجابة المرتفع، يكون نوع الاستجابة أقل بسبب وقت الاستجابة.
onchange يشير ذلك المصطلح إلى معالج أحداث يتم تنشيطه عند تغيُّر معلومات الاتصال.
rtt زمن انتقال الإرسال والاستقبال المقدّر للاتصال بالمللي ثانية.
saveData يشير ذلك المصطلح إلى قيمة منطقية تحدِّد ما إذا كان المستخدم قد طلب وضع استخدام أقل للبيانات.

إليك كيف يبدو هذا عند تشغيله في وحدة التحكم في المتصفح:

وحدة تحكّم أدوات مطوري البرامج في Chrome تعرض قيم خصائص عنصر navigator.connection

تتوفّر قيم effectiveType أيضًا من خلال Client Hints وتتيح لك توصيل نوع اتصال المتصفِّح بالخوادم.

تتيح لك أداة معالجة حدث onchange التكيّف ديناميكيًا مع التغييرات التي تطرأ على جودة الشبكة. إذا تم تأجيل عمليات التحميل أو التنزيل بسبب بطء حالة الشبكة، يمكنك الاعتماد على أداة معالجة الحدث لإعادة بدء عملية النقل عندما ترصد حالات الشبكة الأفضل. يمكنك أيضًا استخدامه لإعلام المستخدمين عندما تتغير جودة الشبكة. على سبيل المثال، إذا انقطع اتصالهم بشبكة Wi-Fi واتصالهم بشبكة جوّال، قد يؤدي ذلك إلى منع عمليات نقل البيانات غير المقصودة (وتحصيل الرسوم 💸).

استخدِم أداة معالجة الحدث onchange كما تفعل مع أي أداة أخرى لمعالجة الأحداث:

navigator.connection.addEventListener('change', doSomethingOnChange);

الخلاصة

إنّ الفوائد المحتملة لواجهة Network Information API كبيرة، لا سيما للمستخدمين الذين يستخدمون الشبكات البطيئة والتطبيقات التي تتطلب قدرًا كبيرًا من معدل نقل البيانات. والأفضل من ذلك كله، يمكن استخدامه كتقنية التحسين التدريجي.