المواضيع تقفز إلى المشاركات الخاطئة

شكراً جزيلاً على خطوات إعادة الإنتاج الواضحة يا @Don :pray:

نعم، هذا هو! هناك شيئان يحدثان في نفس الوقت

  1. يجب أن تزيل خدمة شريط التحميل الفئة still-loading من الجسم (body).
  2. يجب على LockOn التمرير إلى المكان الصحيح.

تم جدولتهما كلاهما في جزء afterRender من حلقة تشغيل Ember. وبما أن أمور ‘lock on’ مجدولة تقنيًا أولاً، فقد تم تشغيلها أولاً. وهكذا كان LockOn يعمل بينما كانت جميع عناصر HTML للمنشور في DOM، ولكنها لا تزال تحتوي على display: none. :grimacing:

سيؤدي هذا PR إلى نقل إزالة الفئة still-loading إلى جزء render من حلقة التشغيل، مما يعني أن أي شيء آخر يقوم بجدولة أشياء في afterRender سيتم تشغيله بمجرد عرض كل شيء وظهوره:

أتفق! لم أكن أرغب في لمسها كجزء من إصلاح هذا الخطأ، ولكن أعتقد أنه يجب علينا أن نهدف إلى إزالة كل تلك الحلول المؤقتة.

بالنظر إلى التعليقات في الملف، يبدو أنه تم تقديمه في الأصل (قبل 10 سنوات!) لمواجهة ميزات ‘استعادة التمرير’ للمتصفح. في الوقت الحاضر، نستخدم history.scrollRestoration = false لتعطيل ميزة المتصفح هذه، لذلك أعتقد أن هذا يجعل معظم الحلول المؤقتة القديمة غير ضرورية.

من الأفضل على الأرجح تجربة هذا النوع من التغييرات الحساسة عبر مكون سمة (theme component) أولاً، وبعد ذلك إذا بدا كل شيء جيدًا، يمكننا دمجه في النواة. أتخيل أن إزالة LockOn ستصلح العديد من الحالات الطرفية الأخرى التي لدينا مع موضع تمرير الموضوع. سأهدف إلى تجربة هذا في الأسابيع القليلة القادمة :technologist:

7 إعجابات