كيف يعمل نظام "وضع علامة كمقروء" في منتديات الويب؟

StackOverflow https://stackoverflow.com/questions/636115

  •  10-07-2019
  •  | 
  •  

سؤال

لقد تساءلت عن هذا لبعض الوقت الآن.أتساءل أن منتديات الويب تنفذ خيار تسليط الضوء على شيء لم تقرأه.كيف يعرف المنتدى.

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

لكن هذا لا يفسر كيف يتم تسليط الضوء على المواضيع الفردية بعد قراءة موضوع واحد فقط.

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

وهناك العديد من لكثير من الجدول توصيل المستخدم إلى موضوع / مشاركة مع الأعلام للقراءة / المفضلة وما إلى ذلك.

والعديد من المنتديات على شبكة الإنترنت تخزين قائمة كبيرة من المرة الأخيرة التي بحثت في كل موضوع كنت قد بحثت في.

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

وعادة، هذه القائمة من العناصر "غير مقروء" يظهر فقط التغييرات التي تم إجراؤها منذ آخر مرة قمت بتسجيل الخروج.

استخدم الماضي النشاط الوقت / التاريخ المستخدم لعلامة مادة بما أن "مقروءة" (أي نشاط في الموضوع بعد وضع علامة ذلك الوقت "مقروءة"). ثم تخزينها في متغير الدورة، قائمة معرفات الموضوع أن شاهدها المستخدم منذ آخر تسجيل دخول. أن الجمع بين هذين أعطيك قائمة دقيقة نسبيا من المواضيع غير المقروءة.

وبطبيعة الحال بعد ذلك تفقد هذه البيانات في السجل المغادرة أو جلسة تنتهي وان دورة البدء من جديد دون التضحية مبلغ لا لزوم له من الاستفسارات SQL.

في منتدى مخصص كنت أعمل معها، كنا مجموعة من الخاص بك آخر مرة زيارة (تحديث كل مرة قمت بعرضها صفحة أخرى - ملف تعريف الارتباط لعادة)، و "علامة قراءة" الموجود على كل موضوع وأضاف وقت / قيمة الوقت إلى جدول SQL تحتوي على معرف المستخدم الخاص بك، وTopicID والتاريخ / الوقت.

وهكذا لعرض الموضوعات الجديدة التي ستنظر في تاريخ آخر زيارة وأي شيء إنشاؤها بعد كانت هذه النقطة في الوقت المناسب موضوع جديد.

وبمجرد أن دخلت الموضوع أي موضوع كنت قد نقرت "علامة قراءة" على أن تظهر فقط في موضوع الأولي ثم أي ردود مع تاريخ / الوقت المحتسب بدل الضائع بعد النقر فوق علامة قراءة زر. إذا كان لديك عدد أقل من المشاهدين وأداء لتجنيب هل يمكن تعيينها الاساس لإضافة إدخال إلى الجدول لكل موضوع يقوم المستخدم بالنقر على، عند النقر عليها.

هناك خيار آخر لديك، وقد رأيت ذلك بالفعل من قبل أثناء تثبيت vBulletin، وهو تخزين قائمة مفصولة بفواصل لمعرفات المواضيع المعروضة من جانب العميل في ملف تعريف الارتباط.

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

  • تاريخ آخر تعديل (أي آخر مشاركة) أقدم من الزيارة السابقة للمستخدم
  • تم العثور على معرف الموضوع في ملف تعريف الارتباط الخاص بالمستخدم كموضوع زاره المستخدم في هذه الجلسة.

أنا لا أقول أنه أ فكره جيده, ، لكنني اعتقدت أنني سأذكره كبديل - لقد تم بالفعل ذكر الطريقة الواضحة للقيام بذلك في إجابات أخرى، أي تخزينها من جانب الخادم كجدول علاقة (جدول كثير إلى كثير).

أعتقد أن لديها ميزة وضع عبء أقل على الخادم لحفظ تلك المعلومات.

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

نهج آخر:

  • تأكد من أن ورقة الأنماط الخاصة بك تعرض فرقًا واضحًا بين الروابط التي تمت زيارتها وتلك التي لم تتم زيارتها، مع الاستفادة من حقيقة أن المتصفحات تتذكر الصفحات التي تمت زيارتها باستمرار.

ومع ذلك، لكي ينجح هذا الأمر، يجب أن يكون لديك عناوين URL متسقة للموضوعات، ولا تميل معظم أنظمة المنتديات إلى القيام بذلك.الجانب السلبي الآخر لذلك هو أنه قد يقوم المستخدمون بمسح سجلهم، أو استخدام أكثر من متصفح واحد.وهذا بالتالي يضع هذا المقياس ضمن "الفئة غير الموثوقة للغاية"؛من المحتمل أنك ستفعل ذلك فقط لزيادة أي إجراء آخر تستخدمه لتتبع الموضوعات التي يتم عرضها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top