تم تعليق هذا المشروع في الوقت الحالي. قد نعيد النظر فيه في المستقبل وسننشر تحديثًا هنا إذا حدث ذلك.
نقدم ميزة تجريبية لمساعدة المجتمعات التي لديها عدد كبير من الفئات. ![]()
على مدى الأشهر القليلة الماضية، عملنا بجد لجعل مواقع Discourse تعمل بشكل أفضل للمجتمعات ذات الفئات العديدة (وليس فقط!) سيتيح هذا للمسؤولين إنشاء آلاف الفئات مع الحفاظ على تجربة المستخدم الودية التي اعتدت عليها.
هذه لا تزال ميزة تجريبية ويمكن تفعيلها عن طريق تعديل إعداد الموقع lazy_loaded_categories_groups. وهي معطلة حاليًا بشكل افتراضي.
كيف يعمل هذا؟
في الوقت الحالي، يتم تحميل جميع بيانات الفئة عند انتقالك إلى مجتمع Discourse. يُطلق على هذا اسم “التحميل الحريص” (eager loading) وهو ليس مثاليًا للمواقع ذات الفئات العديدة لأنه يعني نقل الكثير من المعلومات قبل العرض الأول، مما يزيد من وقت التحميل الإجمالي.
تُسمى الطريقة الجديدة “التحميل الكسول” (lazy loading) وستؤجل تحميل معلومات حول فئة ما حتى تصبح ضرورية حقًا (على سبيل المثال، عند البحث عن فئة، أو الانتقال إليها أو الربط بها، أو قراءة موضوع أو مشاركة تشير إليها، وما إلى ذلك). نقل بيانات أقل يعني وقت تحميل أسرع ومستخدمين أكثر سعادة! ![]()
ماذا يعني هذا بالنسبة لك، كعضو في Meta؟
لقد قمنا باختبار هذه الميزة داخليًا بشكل مكثف، ولكن نظرًا لحجم العمل المنجز، هناك احتمال ضئيل لإدخال أخطاء. إذا لاحظت أي خلل يتعلق بالفئات، فأخبرنا برد على هذا الموضوع أو افتح موضوعًا في Bug.
ماذا يعني هذا بالنسبة لك أو لمجتمعك؟
سواء كنت مستضافًا من قبلنا أو تستضيف بنفسك، فإن هذه الميزة معطلة افتراضيًا ولا ينبغي أن تكون هناك أي تغييرات مرئية.
ومع ذلك، إذا كنت تتطلع إلى توسيع مجتمعك ليشمل العديد من الفئات، فنحن نشجعك بشدة على تمكين هذه الميزة.
في المستقبل، سنقوم بتمكينها افتراضيًا وفي النهاية إهمال وإزالة الكود الذي يقوم بـ “التحميل الحريص” للفئات.
ماذا يعني هذا لمطوري الإضافات (plugins) والسمات (themes)؟
بشكل عام، يجب أن يكون هناك القليل أو لا تغييرات ضرورية لمعظم الإضافات، طالما أنها تستخدم مكونات الفئة من البيانات الأساسية أو المحملة مسبقًا (على سبيل المثال، الاستعلام فقط عن الفئات المرئية بالفعل عند تحميل الصفحة، لأن ذلك يعني أنها تم تحميلها مسبقًا بالفعل).
قد تظهر بعض المشاكل عند محاولة استخدام معلومات للفئات التي لم يتم تحميلها بعد. ستستمر طريقة Category.findByIds في إرجاع الفئات التي تم تحميلها بالفعل فقط، بينما قد تجري طريقة Category.asyncFindByIds بحثًا على الخادم إذا لم يتم تحميل المعلومات بعد.

















