Asynchrones PHP
Marcus
- php
Hallo zusammen,
mir stellt sich gerade dir Frage, ob es möglich ist Ergebnisse, die aus einer PHP/SQL-Abfrage kommen, sobald sie zur Verfügung stehen, anzuzeigen. (Verstanden?)
Also anstelle von
for (...) {
$output .= $output . $neuer_result;
}
echo $output;
sobald ein Result zur Verfügung steht, den sofort im Browser auszugeben.
Meine Suche war recht ertragslos. Kann mir jemand mit einem Tutorial, Tipp, neuen Stichworten zur Suche,... weiterhelfen?
Viele Dank
Marcus
Hallo,
na einfach gleich ausgeben und nicht erst puffern.
Gruß
jobo
Hello,
meinst Du jetzt, dass Datenbankrequests vom PHP-Script parallel abgearbeitet werden und nicht nacheinander?
Dann müsstest Du für jeden DB-Request ein Child abspalten und in den Hintergrund stellen, sodass auf dessen Antwort nicht gewartet wird.
Die Ergebnisse müsstest Du dann irgendwo gezielt sammeln, sodass sie entweder vom Client mit einem dort laufenden weiteren Thread dann abgerufen werden können, oder aber vom Hauptscript zwischendurch auf den Hauptrequest des Clients ausgegeben werden können.
Mal Dir sicherheitshalber mal ein Bild vom Ganzen :-)
LG
Tom vom Berg
Hi!
mir stellt sich gerade dir Frage, ob es möglich ist Ergebnisse, die aus einer PHP/SQL-Abfrage kommen, sobald sie zur Verfügung stehen, anzuzeigen. (Verstanden?)
Üblicherweise stehen sie nach dem Aufruf einer der Fetch-Funktionan zu deiner uneingeschränkten Verfügung. Allerdings hat die MySQL-API die Ergebnismenge der Abfrage bereits beim Aufruf der Query-Funktion vollständig vom Server geholt und zwischengespeichert. Wenn du diesen Zwischenspeichervorgang nicht haben möchtest, nimm eine ungepufferte Abfrage, und beachte dabei die im Handbuch aufgeführten Hinweise.
Lo!
Hallo jobo,
meinst du soetwas: http://de3.php.net/manual/en/function.header.php ?
so in die Richtung:
header("Content-Type: application/octet-stream; ");
for (...) {
echo $neuer_result;
}
Gruß,
the-Fox
Hallo,
header("Content-Type: application/octet-stream; ");
Ja, prizipiell schon. Nur soll der HTML-Code, sobald er reneriert ist ausgegeben werden. Bei oben genanntem Beispiel wird einfach die PHP-Datei ausgegeben...
Wie müsste ich den Header gestalten, damit er HTML als Stream ausgibt?
VG Marcus
Hi,
Wie müsste ich den Header gestalten, damit er HTML als Stream ausgibt?
Nicht anders, als sonst auch - sprich, eigentlich brauchst du bzgl. des Content-Type-Headers gar nichts machen.
Zum restlichen Vorgehen hast du bereits Hinweise erhalten.
MfG ChrisB