Datenbankänderungen in (nahezu) Echtzeit anzeigen?
Dediggefedde
- datenbank
Hallo allerseits^^
Ich würde gerne eine Internet-Seite erstellen, die mir anzeigt, welcher Benutzer gerade online ist.
Dabei möchte ich die Seite jedoch nicht ständig neu laden, sondern sozusagen ständig den aktuellen Stand ermitteln.
Ob ein Benutzer online ist oder nicht, wird in einer mysql-Datenbank festgehalten.
Nun könnte ich die Online-Statu ja über php abrufen, jedoch muss php ja um Server aktualisiert werden, also vom Browser erneut aufgerufen werden.
Javascript hat das Problem nicht, jedoch kann man damit nicht auf Datenbänke zugreifen. Außerdem würde man die Zugangsdaten sehen...
Nun stellt sich mir die Frage, wie ich das Problem angehen soll...
ich habe zwar schon gehört, dass man mithilfe von Javascript eine php-Seite aufrufen könnte und dort dann die Werte ablesen, allerdings sähe das für den Benutzer nicht so gut aus.
Gibt es also eine Möglichkeit, mit einer Client-basierenden Sprache eine Änderung in einer MySql-Datenbank möglichst zeitgleich anzuzeigen?
Mit freundlichen Grüßen
Dediggefedde
Die Online "Schätzung" kannst Du via JavaScript/DOM und Ajax vornehmen.
http kennt kein on- oder offline, darum ist die Aussage ohnehin nicht relevant und wenig aussagekräftig!
Yerf!
Nun stellt sich mir die Frage, wie ich das Problem angehen soll...
ich habe zwar schon gehört, dass man mithilfe von Javascript eine php-Seite aufrufen könnte und dort dann die Werte ablesen, allerdings sähe das für den Benutzer nicht so gut aus.
Das Aussehen lässt sich beliebig regeln, da die daten erst mal in einer JavaScript-Variablen landen und dann beliebig in das bestehende Dokument eingefügt werden können. Ich denke "AJAX" dürfte dich am ehesten ans Ziel bringen.
Gibt es also eine Möglichkeit, mit einer Client-basierenden Sprache eine Änderung in einer MySql-Datenbank möglichst zeitgleich anzuzeigen?
Ich hab früher für so etwas ein Java-Applet benutzt. Damit konnte ich eine TCP-Verbindung zu einem eigenen Server(-Programm) aufbauen und hatte so eine bidirektionale Datenverbindung ohne die beschränkungen von HTTP.
Gruß,
Harlequin
Mahlzeit Dediggefedde,
ich habe zwar schon gehört, dass man mithilfe von Javascript eine php-Seite aufrufen könnte und dort dann die Werte ablesen, allerdings sähe das für den Benutzer nicht so gut aus.
Warum nicht?
Gibt es also eine Möglichkeit, mit einer Client-basierenden Sprache eine Änderung in einer MySql-Datenbank möglichst zeitgleich anzuzeigen?
IMHO beste Lösung - wie bereits gesagt: AJAX. Flash wäre auch möglich, würde aber voraussetzen, dass die Benutzer es installiert haben.
MfG,
EKKi
Hi,
Ich würde gerne eine Internet-Seite erstellen, die mir anzeigt, welcher Benutzer gerade online ist.
Dabei möchte ich die Seite jedoch nicht ständig neu laden, sondern sozusagen ständig den aktuellen Stand ermitteln.
die exakt selbe Überlegung, die Dich zum letztzitierten Satz gebracht hat, hätte Dir die Erkenntnis geben müssen, dass die Information "welcher Benutzer gerade online ist" nicht ermittelt werden kann.
Ob ein Benutzer online ist oder nicht, wird in einer mysql-Datenbank festgehalten.
Nein. Es wird allenfalls festgehalten, dass er zu einem Zeitpunkt online war. Ob er es nicht mehr ist, wirst Du niemals erfahren.
Nun könnte ich die Online-Statu ja über php abrufen, jedoch muss php ja um Server aktualisiert werden, also vom Browser erneut aufgerufen werden.
Da Du auf eben diesem Weg ermittelst, dass jemand online war, ist das ja kein Problem.
Gibt es also eine Möglichkeit, mit einer Client-basierenden Sprache eine Änderung in einer MySql-Datenbank möglichst zeitgleich anzuzeigen?
Nein. HTTP ist zustands- und verbindungslos. Du benötigst einen Request, um einen Response zu erhalten - und zum "nicht mehr online sein" gibt es keinen Request. Dein Vorhaben hat die Grenze zur Absurdität überschritten.
Cheatah