0Pricing
React Academy · درس

حدود Suspense وأولوية البث

ضع حدود Suspense للتحكم في أجزاء HTML التي تُبث أولًا، ومتى تتحول العناصر البديلة إلى محتوى

حدود Suspense وأولوية البث درس مجاني في React Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

Suspense كفاصل للبث

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

هيكل الصفحة: المحتوى السريع والمتزامن

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

الواجهات البديلة في HTML الأولي

عندما يبث React هيكل الصفحة، تُعرض أي حدود Suspense لا تتوفر بياناتها بعد باستخدام واجهتها البديلة، والتي تكون عادةً هيكلًا تخطيطيًا للتحميل أو مؤشر تحميل. تُضمَّن هذه الواجهة البديلة في استجابة HTML الأولية، لذلك يرى المستخدم مؤشر التحميل فورًا بدلًا من مساحة فارغة.

حل الواجهات البديلة واستبدالها

عند اكتمال بيانات أحد حدود Suspense، يبث React كود HTML المكتمل مع نص برمجي صغير مضمن. ينقل ذلك النص البرمجي المحتوى المبثوث حديثًا من عنصر قالب مخفي إلى الموضع الصحيح في DOM، ويستبدل الواجهة البديلة من دون إعادة تحميل الصفحة بالكامل.

نمط النص البرمجي المضمن

يستخدم React نمط عنصر template في HTML: إذ يُبث محتوى Suspense المكتمل إلى قالب مخفي، ثم يستدعي نص برمجي دالة داخلية في React لنقل محتوى القالب إلى الموضع الصحيح في DOM. يتيح ذلك معالجة DOM اللازمة للاستبدال من دون الحاجة إلى JavaScript خاص بإطار العمل.

Suspense المتداخل: جداول زمنية مستقلة

تملك حدود Suspense المتداخلة جداول زمنية مستقلة للحل. يمكن لحد Suspense الداخلي أن يكتمل قبل الحد الخارجي؛ إذ يبث React المحتوى الداخلي فور جاهزيته، بغض النظر عن اكتمال الحد الخارجي. وهذا يزيد التوازي إلى أقصى حد أثناء تحميل البيانات.

استراتيجية التوزيع: ما الذي يوضع وأين

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

ترتيب البث: ليس بالضرورة ترتيب المستند

يبث React حدود Suspense عند اكتمالها، وليس بالضرورة وفق ترتيب ظهورها في المستند. فقد يكتمل قسم يقع أسفل الجزء المرئي قبل قسم يقع في أعلاه إذا كان يحتاج إلى بيانات أقل. ويتولى React إدراج العناصر في DOM بشكل صحيح بغض النظر عن ترتيب البث.

تلميحات الأولوية وتفاعل المستخدم

يستجيب hydration الانتقائي في React 18 لتفاعل المستخدم: فإذا نقر المستخدم أو مرّر المؤشر فوق حد من حدود Suspense لم تكتمل عملية hydration له بعد، يعطي React الأولوية لإجراء hydration لذلك الحد أولًا. ويضمن ذلك استجابة تفاعلات المستخدم حتى أثناء استمرار hydration لأجزاء أخرى من الصفحة.

تجنّب الحدود الدقيقة أكثر من اللازم

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

قياس أثر البث باستخدام Chrome DevTools

في علامة التبويب Network ضمن Chrome DevTools، فعّل "Preserve log" وراقب بث الاستجابة: ستلاحظ نمو مستند HTML على شكل أجزاء. تعرض علامة التبويب Performance مؤشري FCP وLCP؛ فقارن بين إصدارات تستخدم البث وأخرى لا تستخدمه لقياس مقدار التحسن. اضبط الشبكة على Fast 3G لتوضيح الأثر بشكل أكبر.

الواجهة البديلة لـ Suspense في HTML المبثوث

ماذا يحدث للواجهة البديلة لحد Suspense في استجابة HTML الأولية المبثوثة؟

مراجعة الدرس

تقسم حدود Suspense شجرة React إلى أقسام يمكن بثها بشكل مستقل. يُبث الهيكل، أي ما يقع خارج Suspense، أولًا؛ وتظهر الواجهات البديلة فورًا للحدود المعلّقة؛ ثم يستبدل المحتوى المكتمل الواجهات البديلة عبر نصوص برمجية مضمنة. تملك الحدود المتداخلة جداول زمنية مستقلة. ضع الحدود على مستوى الأقسام لتحقيق أفضل دقة للبث، ودع نظام الأولوية في React يتولى ترتيب hydration الناتج عن التفاعل.

الأسئلة الشائعة

هل درس «حدود Suspense وأولوية البث» مجاني؟

نعم — نص درس «حدود Suspense وأولوية البث» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «حدود Suspense وأولوية البث»؟

ضع حدود Suspense للتحكم في أجزاء HTML التي تُبث أولًا، ومتى تتحول العناصر البديلة إلى محتوى تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «حدود Suspense وأولوية البث»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. البث في React 18: كيف يعمل renderToPipeableStream؟
  2. حدود Suspense وأولوية البث
  3. التمهيد التدريجي مع التمهيد الانتقائي
  4. قياس أثر البث: FCP وTTI وLCP
← العودة إلى React Academy