مرحباً!
أنا متحمس جداً لهذه الميزة الجديدة. لقد كنت أنتظر حلاً مثل هذا منذ فترة طويلة، وكانت الاستجابات الأولية من قرائنا في Tecnoblog رائعة – فهم يحبون دمج المجتمع.
ومع ذلك، بعد بعض الاختبارات الواقعية، لاحظت بعض العقبات التقنية التي نحتاج إلى تجاوزها لجعل هذا يبدو كنظام تعليقات أصلي حقاً، والأهم من ذلك، لجعله مستداماً للمواقع ذات الزيارات العالية.
إليك ما وجدته حتى الآن:
1. الأداء وحمل الخادم
ارتفع حمل الخادم لدينا بشكل كبير بعد أن قمنا بتضمين التطبيق الكامل. عند النظر إلى Cloudflare، تضاعف حجم الطلبات لدينا 10 مرات. بعض الأفكار حول كيفية تحسين هذا:
- التحميل الكسول (Lazy Loading): تنفيذ التحميل الكسول لملفات JavaScript يساعد كثيراً (أستخدم بالفعل حيلة لهذا الغرض).
<script type="text/javascript">
DiscourseEmbed = {
discourseUrl: '<?php echo esc_url($discourse_url); ?>',
<?php if ($use_topic_id): ?>
// Modo ID: Tópico salvo no banco, imune a mudanças de URL
topicId: <?php echo intval($topic_id); ?>,
<?php else: ?>
// Modo URL: Fallback quando a criação via API falha
discourseEmbedUrl: '<?php echo esc_url($permalink); ?>',
<?php endif; ?>
fullApp: true,
embedHeight: '800px',
};
(function() {
var container = document.getElementById('discourse-comments');
// Verifica se o navegador suporta IntersectionObserver
if ('IntersectionObserver' in window) {
var observer = new IntersectionObserver(function(entries, observer) {
entries.forEach(function(entry) {
if (entry.isIntersecting) {
// Quando o div entra na tela, carrega o script
loadDiscourse();
observer.unobserve(entry.target);
}
});
}, { rootMargin: "1500px" }); // Carrega 1500px antes de chegar no div
observer.observe(container);
} else {
// Fallback para navegadores antigos
loadDiscourse();
}
function loadDiscourse() {
var d = document.createElement('script');
d.type = 'text/javascript';
d.async = true;
d.src = window.DiscourseEmbed.discourseUrl + 'javascripts/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
}
})();
</script>
هنا يمكنك رؤية انخفاض عدد الطلبات بعد تنفيذ التحميل الكسول (وكانت بعض أجزاء الموقع لا تزال مخزنة مؤقتاً، لذا فهذه ليست النتيجة النهائية):
-
تقليل حجم الحمولة: هل يمكننا تقليل الموارد المحملة داخل التضمين؟ على سبيل المثال: لاحظت استعلامات لروابط الدردشة وفحوصات رصيد الذكاء الاصطناعي – هل هذه ضرورية لعرض التضمين؟
-
تكرار الطلبات: طلبات POST في الوقت الفعلي عدوانية بعض الشيء. ربما يمكننا تقليل تكرار الاستعلامات لنسخة التضمين؟
-
الذاكرة المؤقتة: إدارة محسنة للذاكرة المؤقتة للمواضيع المضمنة للتعامل مع ذروات حركة المرور.
2. فوضى التحليلات
حالياً، يقوم التضمين بتشغيل سكريبتات Google Analytics/GTM. هذا يضاعف عدد صفحاتنا (ضغطة واحدة للمنشور، وأخرى للإطار)، مما يفسد بياناتنا. سيكون مثالياً إذا كان النظام قادراً على اكتشاف أنه داخل إطار وإيقاف أي سكريبتات تتبع تلقائياً (تحليلات Discourse أيضاً).
3. مشكلة ارتفاع الإطار
هذا هو على الأرجح أكبر عائق لتجربة المستخدم. إذا كان المنشور لا يحتوي على تعليقات، فهناك فراغ غريب. إذا كان له سلسلة طويلة، يتم قطع الإطار داخل أول تعليقين أو ثلاثة، مما يجبر على “تمرير داخل تمرير” وهو أمر سيء جداً، خاصة على الهاتف المحمول.
للتنافس حقاً مع شيء مثل Disqus، نحتاج إلى أن يكون الارتفاع ديناميكياً (وفقاً لعدد التعليقات) وأن يكون لدينا زر “اقرأ المزيد” يوسع السلسلة بعد عدد معين من الردود.
4. تعارضات الإضافات
بما أن التضمين يحمل جميع الإضافات النشطة، فإننا نرى بعض السلوكيات الغريبة. على سبيل المثال، تظهر “Google One Tap” داخل منشور المدونة. عندما يسجل المستخدم دخوله، يتم تحديث الإطار وإسقاطه على الصفحة الرئيسية للمجتمع بدلاً من سلسلة التعليقات. القدرة على تعطيل إضافات معينة يدوياً لعرض التضمين ستكون منقذة للحياة.
5. صعوبة تسجيل الدخول
التدفق الحالي قاتل للتحويلات: ينقر المستخدم على تسجيل الدخول - تفتح علامة تبويب جديدة - يحدث تسجيل الدخول - يبقى المستخدم على الصفحة الرئيسية للمجتمع. عند العودة إلى منشور المدونة، لا يزال الإطار يبدو غير مسجل الدخول حتى يقوم المستخدم بتحديث الصفحة بالكامل يدوياً. إنه حلقة مربكة تجعل الناس يستسلمون ويغادرون قبل التعليق.
بما أننا فعلنا التضمين الجديد، فإن التسجيلات اليومية لدينا تضاعفت أكثر من مرة، وهو أمر رائع. ومع ذلك، لم تتحرك مقاييس التفاعل لدينا على الإطلاق. في الواقع، انخفضت نسبة DAU/MAU لدينا – لدينا المزيد من المستخدمين المسجلين، لكنهم لا يتفاعلون. لم تشهد مقاييس مثل “المستخدمين النشطين يومياً” و"المساهمين الجدد" و"المنشورات" أي زيادة.
هذا يثبت أن الناس يرغبون في الانضمام إلى المحادثة، لكنهم يضيعون في حلقة تسجيل الدخول ويهملون المنشور قبل أن يتمكنوا من التعليق فعلياً.
6. واجهة الهاتف المحمول
على الهاتف المحمول، تشغل نافذة الرد الشاشة بأكملها، لذلك تفقد كل سياق المحادثة التي ترد عليها. يبدو الأمر محبباً بعض الشيء – أي شيء يمكننا القيام به لإبقائه أكثر إحكاماً سيكون فوزاً كبيراً.
أريد حقاً جعل هذا النظام الافتراضي في Tecnoblog (وأيضاً في موقع آخر نملكه). أخبرني إذا كنت تريد التعمق أكثر في أي من هذه النقاط!







