إلغاء أولوية عمليات الاسترجاع في الخلفية

ميزات الويب: أولوية الجلب الجلب

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

كيفية الإعداد

  1. تحديد الطلبات في الخلفية: حدِّد طلبات fetch() التي تخصّ البيانات غير الأساسية والتي لا تؤثر في تجربة المستخدم الفورية.
  2. تطبيق أولوية الجلب: أضِف الخيار priority: 'low' إلى عنصر الإعداد fetch().

مثال على الرمز

// Use high priority (default) for critical UI updates
const criticalData = await fetch('/api/data');

// Explicitly deprioritize background analytics
fetch('/api/analytics', {
  method: 'POST',
  body: JSON.stringify(eventData),
  // Lower the priority to prevent network contention
  priority: 'low'
});

أفضل الممارسات

  • يجب استخدام priority: 'low' للإحصاءات أو الإشارات أو بيانات القياس عن بُعد غير المطلوبة للعرض الحالي.
  • يُرجى استخدام priority: 'low' من أجل "الجلب المُسبق" للبيانات التي قد يحتاجها المستخدم لاحقًا، مع التأكّد من أنّ ذلك لا يؤدي إلى إبطاء ما يحتاجه الآن.
  • لا تستخدِم priority: 'low' لعمليات الجلب التي تُعدّ ضرورية لتجربة المستخدم.
  • لا تستخدِم المفتاح importance المتوقّف نهائيًا في عنصر خيارات الجلب. المفتاح الصحيح هو priority.

استراتيجية احتياطية

يُعدّ الخيار priority في Fetch API تحسينًا تدريجيًا. وستتجاهل المتصفّحات التي لا تتيح هذه الميزة الخيار وتعالج الطلب بالأولوية التلقائية. لا يلزم رصد الميزات بشكل صريح أو استخدام منطق احتياطي للاستخدام الأساسي.