انتقل إلى محتوى الدرس

Understanding API Race Bugs كيف يحدث تضارب ردود الشبكة

احمِ واجهة React من تضارب ردود الشبكة المتأخرة باستخدام راية التجاهل في دالة التنظيف وأداة AbortController القياسية وفصل خطأ الإلغاء المقصود وتهدئة البحث.
2 صفوف تعليمية
ReactJS
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لا تضمن الشبكات وصول ردود بروتوكول HTTP بنفس ترتيب إرسالها دائماً. تخيل أن المستخدم نقر على تبويب Frontend فاستغرق الخادم 500ms، ثم نقر فوراً على تبويب Hooks فوصل رده الخفيف خلال 120ms فقط. في غياب دالة تنظيف، ستظهر دورات Hooks أولاً، ثم يصل الرد القديم المتأخر بعد أجزاء من الثانية ويستدعي setCourses() فيطمس الشاشة ببيانات التبويب السابق بالخطأ!

يُعرف هذا الخلل الزمني الشهير باسم تضارب السباق في الشبكة (Race Condition)؛ لأن طلبين متوازيين يتسابقان لتحديث نفس الحالة دون مراعاة أيّهما يمثل اختيار المستخدم الأخير.

الصف 2 ملاحظة هامة