إضافة Locations 🌍

شكرًا لك @merefield، هذا بالضبط ما حاولنا فعله :slight_smile:

للأسف، لا يزال يتوقف لتحميل صفحة قائمة المستخدمين أولاً، ثم يعيد التوجيه إلى الخريطة.

كنت آمل أن تكون الخريطة متاحة فقط على /map أو شيء مشابه :slight_smile:

إعجابَين (2)

فهمت.

لكن هذا إلهاء غير ذي صلة.

قائمة المستخدمين الافتراضية مخزنة مؤقتًا، لذا تُحمّل في جزء من الثانية. المشكلة الحقيقية تكمن في المدة التي يستغرقها تحميل نموذج الخريطة، والتي في حالتك تبلغ حوالي 400 مستخدم دفعة واحدة… لذا نعم، فإن عرض قائمة المستخدمين يستهلك 0.1% فقط من وقت المعالجة، لكن المشكلة الحقيقية تكمن في الجزء الثاني. قد لا يكون هناك حل سريع لذلك.

أعلم هذا جزئيًا لأنني قمت للتو بنشر التحديث على موقع لم يستخدم هذه الميزة من قبل. تُحمّل بيانات الخريطة بسرعة كبيرة لدرجة أن قائمة المستخدمين لا تظهر أبدًا (على الرغم من أنها تُحمّل أولاً). ما المشكلة؟ حتى الآن، قام مستخدمان فقط بتثبيت موقعهما… خريطة المستخدمين لا تتوسع بشكل جيد مع بنيتها المعمارية الحالية.

3 إعجابات

رؤية مثيرة للاهتمام، شكراً لك.

في الوقت الحالي، لدينا حوالي 12% فقط من أعضاء مجتمعنا على الخريطة، وكنا نناقش مؤخراً حملة لجذب المزيد من الأعضاء إليها.

هل أفهم بشكل صحيح أنه مع استمرار نمو مجتمعنا، يمكننا توقع أن يصبح تحميل الخريطة أبطأ وأبطأ؟

إعجابَين (2)

أنا أيضاً أظن أنه يجب عليه تحميل قائمة المستخدمين أولاً؟

بما أنني لا أعرف شيئاً عن الكود، هل من الممكن وضع الخريطة بمفردها في مكان ما؟ :thinking: :man_shrugging:

إعجابَين (2)

كما قلت، هذا غير ذي صلة. قائمة المستخدمين مخزنة مؤقتًا وهي قصيرة جدًا.

إعجابَين (2)

هل يستخدم مكون Locations نموذجًا خاصًا به لهذا الغرض أم نموذجًا أساسيًا موجودًا؟ أتساءل عن مكان الاختناق عند اختيار 400 صف فقط من معلومات المستخدم من قاعدة البيانات؟

آسف على كل هذه الأسئلة @merefield، أنا فقط أحاول فهم آلية العمل بشكل أفضل تحت الغطاء :slight_smile:

إعجابَين (2)

لا مشكلة يا ريتشي. نحن نلغي عمل وحدة تحكم DirectoryItemsController لاسترجاع المزيد من الأشخاص دفعة واحدة مما يحدث عادةً عند تقسيم البيانات للجدول العادي. النموذج لا يختلف عن ذلك.

هذا الأمر يحتاج حقًا إلى استبدال جذري وشامل بنظام تدفق بيانات أكثر تعقيدًا يكون مدركًا لحجم وموقع نافذة العرض. أعتقد أن هذا يتطلب جهدًا كبيرًا، خاصةً لأننا لن نتمكن بعد الآن من الاستفادة إلى حد كبير من الكود المرفق مع Discourse، فهذه حالة استخدام مختلفة تمامًا. مع ذلك، إنها مهمة مثيرة للاهتمام!

حقيقة أنك ترى هذا التأخير في كل مرة بشكل فردي تشير إلى أن الأمر لا يتعلق بالذاكرة المؤقتة، وقد يكون ذلك شيئًا يمكننا إصلاحه دون الحاجة إلى تغييرات ضخمة.

4 إعجابات

ألم أغفل أو أغير إعدادًا بسيطًا في Discourse؟ :man_facepalming:

إعجابَين (2)

لا، ليست مشكلتك، باستثناء أنك ربما تجاوزت القدرات الحالية للإضافة :slight_smile:

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

أما عملية التقليم الأكبر في الشجرة…

إعجابَين (2)

:cry:

شكرًا لك @merefield، لكن انتظر قليلًا بشأن ذلك. ليس لدي أي دليل في أي من الاتجاهين، لكن شكّي يميل بقوة إلى أن الناس ينظرون إلى الخريطة مرة واحدة فقط في كل جلسة على أي حال :thinking:

إعجابَين (2)

تقرير خطأ.

هذا الخطأ موجود منذ فترة، لكنني أخيرًا اكتشفت أن مشكلة إضافة المواقع هي المسؤولة. عندما أتعطل الإضافة، يظهر موقعي الإلكتروني بشكل صحيح في بطاقة المستخدم، لكن عند تمكينها، يظهر مرتين! إليك لقطة شاشة من بطاقة المستخدم التي تظهر عند التمرير فوقها:

وإليك لقطة شاشة أخرى من صفحة الملف الشخصي المكتملة:

Screen Shot 2020-06-11 at 11.15.36 AM

لقد اختبرت هذا مرارًا وتكرارًا عن طريق تجربة مجموعات مختلفة من تغيير القيم في الملف الشخصي. المرة الوحيدة التي يظهر فيها الموقع بشكل صحيح، أي يظهر مرة واحدة فقط، هي عندما أتعطل إضافة المواقع.

إعجابَين (2)

شكرًا لكارتيك، هل تستخدم تحديثًا حديثًا؟

إعجابَين (2)

نعم، كان ينبغي أن أذكر ذلك.


تحرير: كود HTML المُولَّد للعنصر المكرر:

<span id="ember858" class="ember-view">  <div id="ember860" class="user-location-and-website-outlet replace-location ember-view"><!----><div class="user-profile-website">
  <svg class="fa d-icon d-icon-globe svg-icon svg-string" xmlns="http://www.w3.org/2000/svg"><use xlink:href="#globe"></use></svg>
    <span title="http://ks.cs.uchicago.edu">ks.cs.uchicago.edu</span>
</div>
</div>
</span>
3 إعجابات

أنا مشغول حاليًا بأعمال العملاء، لكنني سأضع هذا في اعتباري خلال الفترة التمهيدية لفترة الترقية المدعومة القادمة (من 1 إلى 5 من الشهر القادم).

إعجابَين (2)

من المثير للاهتمام أن أحدهما مصمم كرابط قابل للنقر والآخر ليس كذلك :thinking:

ومن المثير للاهتمام أيضًا أننا لا نواجه هذه المشكلة في منتدانا.

إعجابَين (2)

يبدو أن لدينا مشكلة أخرى @merefield

يُظهر خريطتنا للمستخدمين حاليًا 472 مستخدمًا، لكن بعض المستخدمين أبلغوا عن عدم ظهور دبوس موقعهم على الخريطة. ومع ذلك، عند عرض بطاقة المستخدم الخاصة بهم، يظهر الموقع على خريطتهم الصغيرة الخاصة.

عند تشغيل استعلام على قاعدة البيانات للمستخدمين الذين أضافوا موقعًا، نحصل على 492 نتيجة، مما يشير إلى أن حوالي 20 مستخدمًا غير مرئيين على الخريطة.

هل يمكننا فعل أي شيء للمساعدة في تشخيص هذه المشكلة؟

عند عرض بطاقة المستخدم الخاصة بـ Chris، يظهر موقعه على ملفه الشخصي في الخريطة بشكل صحيح:

الخريطة الكاملة/الرئيسية، Chris غير موجود :thinking:

إعجاب واحد (1)

ما هي قيمة هذا الإعداد، ريتشي؟

image

بالنسبة للمستخدم المفقود في المثال، هل يمكنك إرسال النتيجة لي عبر الرسائل الخاصة من وحدة تحكم Rails:

myuser = User.find_by(username: "===USERNAME===")
myuser.custom_fields["geo_location"]
إعجابَين (2)

تتصاعد الأحداث :smiley:

كانت مضبوطة على 500.

غيّرتها إلى 1000، وظهر الأشخاص المفقودون لدينا فورًا :thinking:

سأُرسل لك النتائج عبر الرسالة الخاصة كما طُلب مني :+1:t2:

إعجابَين (2)

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

إعجابَين (2)

شكرًا لك @merefield، لقد لاحظنا أن بعض المستخدمين لديهم قيم مثل '{}'، لذا أفترض أنهم ربما كانت لديهم موقعًا في السابق وتمت إزالته منذ ذلك الحين.

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

شكرًا لك :slight_smile:

إعجابَين (2)