يمكن أن يكون تحميل موقع الويب تجربة مختلفة تمامًا حسب شروط الشبكة. يعمل كل شيء بسلاسة عادةً عند الاتصال بشبكة سريعة، ولكن عند استخدام شبكة بطيئة أو خطة بيانات محدودة أثناء التنقّل، أو عند استخدام كمبيوتر محمول على شبكة Wi-Fi بطيئة في مقهى، تختلف الأمور.
وإحدى الطرق للتعامل مع هذه المشكلة هي من خلال تعديل مواد العرض التي تعرِضها للمستخدمين، وذلك استنادًا إلى جودة اتصالهم بالإنترنت. أصبح ذلك ممكنًا الآن باستخدام واجهة برمجة التطبيقات Network Information API التي تتيح لتطبيقات الويب الوصول إلى معلومات عن شبكة المستخدم.
الاستخدام
هناك العديد من الطرق التي يمكنك من خلالها استخدام معلومات الشبكة هذه لتحسين تجربت ا المستخدم:
- التبديل بين عرض المحتوى العالي الدقة والمحتوى المنخفض الدقة استنادًا إلى شبكة المستخدم
- تحديد ما إذا كنت تريد تحميل الموارد مسبقًا
- تأجيل عمليات التحميل والتنزيل عندما يكون اتصال المستخدمين بطيئًا.
- فعِّل وضع عدم الاتصال بالإنترنت إذا كانت جودة الشبكة غير كافية لتحميل التطبيق واستخدام الميزات.
- تحذير المستخدمين من أنّ تنفيذ بعض الإجراءات (مثل مشاهدة فيديو) عبر شبكة الجوّال قد يؤدي إلى تحمّلهم رسومًا
- ويمكنك استخدام هذه الميزة في إحصاءاتك لجمع بيانات عن جودة شبكة المستخدمين.
تقوم العديد من التطبيقات بالفعل بشيء مماثل. على سبيل المثال، تضبط YouTube وNetflix ومعظم خدمات الفيديو (أو مكالمات الفيديو) الأخرى درجة الدقة تلقائيًا أثناء البث. عند تحميل Gmail، يقدّم للمستخدمين رابطًا لـ "تحميل HTML الأساسي (للاتصالات البطيئة)".
آلية العمل
يحتوي العنصر navigator.connection
على معلومات حول اتصال العميل. يتم شرح خصائصه في الجدول أدناه.
الموقع | الشرح |
---|---|
downlink |
التقدير لمعدّل نقل البيانات بالميغابت في الثانية |
effectiveType |
النوع الفعال للاتصال، مع القيم المحتملة 'slow-2g' أو '2g' أو '3g' أو '4g' (تغطي الجيل الرابع والإصدارات الأحدث) يتم تحديدها استنادًا إلى وقت الرحلة ذهابًا وإيابًا وسرعة التحميل. على سبيل المثال، سيؤدي ربط سرعة تنزيل سريعة بوقت استجابة مرتفع إلى انخفاض قيمة effectiveType بسبب وقت الاستجابة. |
onchange |
معالِج أحداث يتم تشغيله عند تغيير معلومات الاتصال. |
rtt |
وقت الاستجابة المقدَّر للاتصال ذهابًا وإيابًا بالمللي ثانية |
saveData |
قيمة منطقية تحدِّد ما إذا كان المستخدم قد طلب وضع استخدام بيانات مخفض. |
في ما يلي الشكل الذي سيظهر به هذا الإجراء عند تشغيله في وحدة تحكّم المتصفّح:
تتوفّر قيم effectiveType
أيضًا من خلال
ملاحظات العميل
وتسمح لك بإبلاغ الخوادم بنوع اتصال المتصفّح.
تتيح لك أداة معالجة الأحداث في onchange
التكيّف بشكل ديناميكي مع التغييرات التي تطرأ على
جودة الشبكة. إذا تم تأجيل عمليات التحميل أو عمليات التنزيل بسبب سوء ظروف الاتصال بالشبكة، يمكنك الاعتماد على أداة معالجة الحدث لإعادة تشغيل عملية النقل عند رصد ظروف أفضل للشبكة. ويمكنك أيضًا استخدامها لإعلام المستخدمين عند تغيُّر
جودة الشبكة. على سبيل المثال، إذا فقد الجهاز إشارة Wi-Fi وأصبح مرتبطًا
بشبكة جوّال، يمكن أن يمنع ذلك عمليات نقل البيانات غير المقصودة (ورسوم الربط 💸).
استخدِم أداة معالجة الحدث onchange
كما تفعل مع أي أداة معالجة حدث أخرى:
navigator.connection.addEventListener('change', doSomethingOnChange);
الخاتمة
الفوائد المحتملة لواجهة برمجة تطبيقات Network Information API كبيرة، لا سيما للمستخدمين الذين يستخدمون الشبكات البطيئة والتطبيقات التي تتطلب معدل نقل بيانات كبيرًا. والأهم من ذلك، يمكن استخدامها كأسلوب تحسين تدريجي.