• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Kommentarfunktion bei Seitenaufruf neuladen

SirROG

Mitglied
Hallo

Also ich hab wie in vielen Foren einen Artikel und unter diesem Artikel gibt es eine Kommentarfunktion, soweit so gut.
Die Kommentarfunktion wird mit PHP und einem SQL Server realisiert. Die Kommentare werden aus der SQL Datenbank geladen und angezeigt. Nun soll die Kommentarfunktion entweder bei jedem Seitenaufruf neugeladen werden oder mind. einmal im Tag wenn dies einfach ist. Weil zurzeit hab ich das Problem ich kann zwar einen Kommentar posten aber er wird erst beim erneuten Laden der Seite angezeigt (also z.B. F5). Wenn der Benutzer die Seite nicht Manuel neu lädt wird der Kommentar erst nach ca. einer Woche angezeigt, die alte Seite wird wohl noch irgendwo im Cache liegen und die neuen Kommentare nicht nachgeladen.
Nun meine Frage wie wird dies normalerweise gelöst. Eig. müsste der HTML Teil der Seite nicht immer neugeladen werden (Traffic) sondern nur die PHP Kommentarfunktion.

Bei Google hab ich nur eine Lösung gefunden, welche die ganze Seite jedes Mal neu Lädt, dies ist meiner Ansicht nach nicht optimal, da so auch wahrscheinlich auch immer wieder alle Bilder etc. neu nachgeladen werden und nicht mehr aus dem Cache genommen werden.

PHP:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    // Datum aus Vergangenheit
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // immer geändert
Header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");  // HTTP/1.0
?>


Ich würd mich über hilfreiche Antworten und Anregungen sehr freuen.
 
Werbung:
Nun meine Frage wie wird dies normalerweise gelöst

Durch bidirektionale Kommunikation. In dem Moment, wo es auf dem Server ein Update gibt, werden alle Clients benachrichtigt. Technisch geht das in Richtung JavaScript und lässt sich mit WebSockets oder Unterstützung cloud-basierter Services wie Firebase lösen.
 
Vielen Dank Tronjer für den hilfreichen Hinweis und Vorschlag.
Werde mir da mal paar Tutorials durchlesen und es versuchen zu verstehen.
Klingt sehr interessant und gibt eine vollkommen neue Perspektive der Website Programmierung.

Da lernt man immer wieder mal was Neues und Brauchbares dazu :)
 
Werbung:
Um das Thema etwas weiter zu differenzieren und dich in die richtige Richtung zu lenken. Es gibt zwei Szenarios. Im ersten Fall wird die Seite nur für den User aktualisiert, der gerade einen Kommentar gepostet hat, im zweiten für alle User, die momentan auf der Seite online sind. Letzteren hat man bsw. bei Chats und kollaborativen Whiteboards.

Beide Szenarios haben etwas mit Ajax und JavaScript Frameworks zu tun, aber nicht zwingend mit WebSockets. Für das erste reicht eine Synchronisation zwischen View und Model. Dazu könntest du im Backend mit PHP eine REST-API bauen und im Frontend Angular einsetzen. Solltest du deine Daten in MongoDB migrieren, liefert dir mean.js sogar eine komplette front- und backendseitige Lösung mit allen Komponenten, ganz ohne PHP und SQL.

Nur für das zweite Szenario benötigst du bidirektionale Client-Server-Kommunikation. Dazu würde sich socket.io als API für einen Node/Express Server anbieten, oder du koppelst Angular, wie bereits erwähnt, mit einem Service à la Firebase.
 
Zurück
Oben