Nachladetechnologie für Zusatzdaten bei Posts

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Nachladetechnologie für Zusatzdaten bei Posts

    Moin zusammen!

    Ich hab auch mal eine Frage, eine doch recht komplexe. Ich hoffe, dass einer von euch eine Idee hat. :)

    Für verschieden Projekte baue ich grade eine Social Interaction Grundebene - also Messaging, Posts, Kontaktkreise, Profile und co. Ein Hauptelement dessen ist der s.g. Stream - vergleichbar mit der Facebook Home Ansicht, wo alle Posts von Freunden und Abonnierten Usern angezeigt werden. Und um ebenjene Ansicht geht es hierbei auch.

    Die Posts werden komplett per Ajax nachgeladen. Das bedeutet, dass über verschiedene Links zu beiden Seiten des Contents die Inhalte in der Mitte nachgeladen werden, was in den meisten Fällen Posts sind. Die Posts haben noch einige Zusatzinformationen, wie zum Beispiel Tags und Likes (also z.B. die Facebook Likes). Nun kommt aber der Clou der Sache: für die Posts soll es Push-Updates über WebSocket geben. Dafür dient im Hintergrund ein Node.JS Server.

    Die Frage dabei ist folgende:
    - Sollen die Likes mit den Posts mitgeliefert werden?
    -- Wenn ja, woher weiss der WS Server, welche Likes das Frontend schon hat? Soll das ausgebene PHP bei jedem Post dem WS Server mitteilen, welche Likes das Frontend schon hat und welche nicht?
    -- Wenn nein, werden dann alle Likes über WS nachgeladen? Hätte den Vorteil, dass man sicherstellen kann, dass alle Likes auch wirklich am Frontend ankommen.
    - Sollen neue Posts komplett über den WS ans Frontend geschickt werden oder soll der WS Server das Frontend nur darüber benachrichtigen, DASS es einen neuen Post gibt? Dann müsste das Frontend den Post einzeln via Ajax nachladen und dann nochmal die Likes vom WS Server holen?

    Man stelle sich einen Nachladeablauf wie folgt vor:
    1. User klickt auf einen Link.
    2. Container in der Mitte wird geleert.
    3. Posts werden angefragt und in den Container geladen.
    (4. Likes werden per WS geholt - an der Stelle registriert sich das Frontend auch für Updates für den Post, also alle Likes u.Ä. was dannach noch kommt werden automatisch gepushed.

    Ich habe bereits einige Gedankenmodelle durch, wie zum Beispiel:
    - Beim rendern der Posts in PHP baut PHP eine kurze WS Verbindung zum node server auf um diesem mitzuteilen, dass der User x sich für Updates zum Post y registriert. Der node Server schickt dann alle folgenden Updates an die ihm bekannte Verbindung (muss natürlich gewährlsitet sein, dass a) beide vom selben User sprechen und b) der User im Freontend bereits eine bestehende WS Verbindung hat - tricky)
    - Es werden beim Rendern gar keine Likes ausgegeben, diese werden komplett wia WS nachgeladen.
    - Bei einem Push Update wird einfach der komplette Post nochmal geladen und ersetzt

    Keine dieser Lösungen erscheint mir sinnvoll. Hat einer von euch eine Idee oder Erfahrungen mit ähnlichen Problematiken?

    Viele Grüße!
    Bodo06
  • Ich würde beim Benutzer ansetzen. Gibt es wie beispielsweise bei Facebook einen Hardlink (das fblogo oben links) dann klicken die User automatisch da drauf um die Seite zu refresehen (auch wenn es möglicherweise einen autoreload gibt, der für viele aber nicht ersichtlich ist). Würde bedeuten, dass wenn alles ausgelagert ist (likes, comments, posts), es sehr viele Nachladeoperationen gibt.

    Gibt es diese Verlinkung nicht, drückt der User F5 :D Die meisten Leute trauen dem Ajaxrefresh nicht, da die Seite nicht neugeladen wird und denken, dass Inhalte fehlen, da Sie den Prozess nicht kennen. Daher würde ich bei dem ersten laden alles komplett auf einem Rutsch auslesen.

    Beim nachladen würde ich alles trennen. Da wäre es am effizientesten, wenn nur das nachgeladen wird, was auch im Fokus des Nutzers ist. Inwiefern das umsetzbar ist, weiß ich allerdings nicht.