ich bin ganz neu hier und habe gleich eine Frage, zu der ich bisher keine zufriedenstellende Lösung gefunden habe.
Ich habe eine Tabelle mit 2 Spalten, ID und Wert, etwa 100k Einträge. Der „Wert“ einzelner Einträge wird von einem im Hintergrund laufenden PHP-Script ständig geändert.
Daneben gibt es die Abfrageseite. Über den Apache kommt eine Anfrage „ID x,y,z,…“, diese sollen dann abgefragt und ausgegeben werden. Soweit nichts besonderes.
Jetzt soll das Script von der Anfrageseite jedoch weiterlaufen und jeden Wert, der sich während dieser Laufzeit geändert hat, ausgeben. Das ganze mit möglichst kurzer Verzögerung (<1s) und ohne eine große Serverauslastung mit busy waiting, etc. zu produzieren.
Gibt es dazu eine elegante Lösung, eventuell indem man eine Anfrage stellt, die so lange blockiert bis vom hintergrundscript eine änderung erfolgt?
Stichwörter wonach ich suchen muss würden mir völlig reichen!
diese aktuallisierung.
heisst das ich suche nach etwas, bekomme eine ausgabe aus der datenbank und nachdem ich die ausgabe erhalten hat, veraendert sich einer der wert der mir ausgegeben wurde und dieser soll neu geladen werden?
wenn das so ist brauchst du php mysql und Javascript.
da php nur serverseitig laeuft koennen die werte die sich veraendert haben nur bei refresh oder neuer suche aktuallisiert werden.
mittels javascript sollte es moeglich sein alle paar sekunden zu uberpruefen ob sich ein wert veraendert hat und wenn ja dann den neuen anfordern.
wenn du kein javascript haben willst gaebe es noch die moeglichkeit mittels meta tags im header die seite alle paar sekunden neu zu laden.
damit wird auch der php code neu ausgefuehrt und die werte aktualisieren sich.
Ja richtig, ich verwende dazu javascript. Der Teil funktioniert schon perfekt.
Es soll so laufen, das die HTTP-Verbindung zum Server bestehen bleibt, das php-script sich also nicht beendet. Vorneweg wird der HTML-Code ausgegeben, zum Schluss kommt ein Javascript das Stückchen für Stückchen ausgegeben wird, eben immer dann wenn neue Werte vorhanden sind.
achso das php skript soll also durchgehend laufen?
naja meiner meinung nach ist das eine dumme idee.
gehen wuerde es mit einen endlosschleife, doch es sollte eine verzoegerung eingebaut werden, welche soweit ich weiss sleep heisst.
nur dann wuerde die seite nie fertig laden, was wenig sinn macht, vorallem wenn noch code nach der schleife kommt.
am besten waere denke ich mal ein JavaScript, dass sich alle paar sekunden selbst aufruft und die seite neu laden laesst.