Frage zur Angabe der Anzahl der Aufrufe der Themen



  • Hallo,

    wollte fragen wie die Aufrufe gezählt werden.

    Also im Forum vor der Forenmigration war mir aufgefallen, dass jedesmal wenn ich ein Thema aufgerufen habe, die Anzahl der Aufrufe um eins erhöht wurde.

    Im neuen Forum geschieht dies nicht immer. Frage mich weshalb:

    • Werden Aufrufe von einer IP-Adresse nur einmal gezählt?
    • Wird ein Cookie gespeichert und pro Cookie nur einmal gezählt?
    • Gibt es manchmal eine Zeitverzögerung, bis wieder gezählt wird?

    Vielen Dank 😑

    Falls die Frage zu neugierig ist, unangemessen gestellt ist oder die Begründung der Frage nicht ausreicht, könnte man ja auch zuerst über den Zweck der Angabe der Anzahl der Aufrufe der Themen diskutieren. 🌪


  • Administrator

    @titan99_ sagte in Frage zur Angabe der Anzahl der Aufrufe der Themen:

    Falls die Frage zu neugierig ist, unangemessen gestellt ist oder die Begründung der Frage nicht ausreicht, könnte man ja auch zuerst über den Zweck der Angabe der Anzahl der Aufrufe der Themen diskutieren. 🌪

    Zu neugierig? Die Forensoftware ist Open-Source. Beantwortet nachfolgender Link deine Frage?
    https://github.com/NodeBB/NodeBB/blob/master/src/controllers/topics.js#L165



  • @dravere sagte in Frage zur Angabe der Anzahl der Aufrufe der Themen:

    Zu neugierig? Die Forensoftware ist Open-Source. Beantwortet nachfolgender Link deine Frage?
    https://github.com/NodeBB/NodeBB/blob/master/src/controllers/topics.js#L165

    Danke für die Bemühung den Link zu suchen 😃 . Nur ganz ein wenig, da ich kein JavaScript lesen kann, ausser wenn der Syntax wie C++ ist.

    Also wird unter anderem die Anzahl der Aufrufe nur erhöht, wenn das gespeicherte Datum minus eine Konstante kleiner ist, als das jeweils jetzige? Also die Konstante könnte 60 * 60 * 1000 sein. So ist die Konstante vielleicht in Millisekunden. Demnach könnte dieser Teil nur nach jeweils einer Stunde (+ 1ms?) eine Erhöhung der Anzahl der Aufrufe zulassen. Demnach gibt es bei diesem Teil eine Zeitverzögerung, aber es hat ja noch andere Variablen...


  • Administrator

    JavaScript hat ein C-Syntax. So verschieden ist das nun auch wieder nicht 🙂

    req is das Request Objekt, also die HTTP Anfrage.
    req.session ist deine HTTP Session (Session Cookie).

    Es prüft somit, ob du in der aktuellen Session das Thema noch nie angeschaut hast oder ob seit dem letzten Ansehen eine Stunde vergangen ist. Wenn eine der beiden Bedingungen wahr ist, wird der Zähler um eins erhöht. Es hat somit nicht eine Verzögerung sondern eine "Entprellung". Es sorgt dafür, dass es bei wiederholtem Ansehen innert "kurzer" Zeit nicht zu unnötigen zusätzlichen Erhöhungen des Zählers kommt.



  • @dravere sagte in Frage zur Angabe der Anzahl der Aufrufe der Themen:

    JavaScript hat ein C-Syntax. So verschieden ist das nun auch wieder nicht

    Ist schon erstaunlich, wie sich Javascript gemausert hat und was man damit heute alles machen kann.
    Ursprünglich lief es nur im Browser, jetzt sogar auf dem Server (NodeJS, siehe z.B. dieses Forensystem).
    Und dann auch noch auf dem Desktop (Visual Studio Code, ein Editor der auch auf Node-JS basiert).



  • @dravere sagte in Frage zur Angabe der Anzahl der Aufrufe der Themen:

    req.session ist deine HTTP Session (Session Cookie).

    Habe nochmals beobachtet, wann die Anzahl der Aufrufe erhöht wird.

    Also wenn ich die Forumseite verlasse und wieder aufrufe, erhöhen sich die Aufrufe nicht. Wenn ich den Browser schliesse und wieder öffne und das Thema aufrufe, erhöhen sich die Aufrufe auch nicht. Ich nehme deshalb an, dass ein Session Cookie nach dem verlassen des Forums oder nach dem schliessen des Forums nicht gelöscht wird.


  • Administrator

    @titan99_ Kommt darauf an, was du beim Login eingestellt hast. Wenn du eingestellt hast, dass sich das Forum dein Login merken soll, dann wird ein Cookie installiert, welches deine Session länger hält. Aktuell ist es, glaube ich, auf 14 Tagen eingestellt.