M.: /JAVASCRIPT Daten zeilenweise vom Server holen und ausgeben.

Mahlzeit,
ein vermutlich banales Problem bei dem mir nur die passenden Suchbegriffe fehlen.

Ich sende einen Request an den Server ab und bekomme eine Liste mit Ergebnissen zurück. Jetzt will ich, dass jede Zeile sofort ausgegeben wird, also nicht gepuffert wird.

Ok, flush() in PHP ist bekannt, aber kann vom Server ausgehebelt werden.

Was ich gerne hätte: Request per jQuery/Ajax und dann die zeilenweise Anzeige der Ergebnisse in (quasi) Echtzeit. Da die Ergebnisliste durch mehrere Datenbankabfrage erzeugt wird, sind einzelne Requests nicht sinnvoll.

Dass es Ansätze und Lösungen gibt, weiss ich, aber mir fehlen die passenden Suchbegriffe.
Wer gibt mir nen Rempler in die richtige Richtung?

thx4hlp

  1. Tach!

    Ich sende einen Request an den Server ab und bekomme eine Liste mit Ergebnissen zurück. Jetzt will ich, dass jede Zeile sofort ausgegeben wird, also nicht gepuffert wird.
    Ok, flush() in PHP ist bekannt, aber kann vom Server ausgehebelt werden.

    Nun, wenn flush() nicht funktioniert, dann wirst du das Gebilde aus PHP und Webserver kaum dazu überreden können, die Ergebnisse sofort und stückweise zu übertragen. Etwas stärkeres als flush() kenne ich nicht. Vielleicht gibt es da aber was in Richtung WebRTC oder WebSocket.

    dedlfix.

    1. Nun, wenn flush() nicht funktioniert, dann wirst du das Gebilde aus PHP und Webserver kaum dazu überreden können, die Ergebnisse sofort und stückweise zu übertragen. Etwas stärkeres als flush() kenne ich nicht. Vielleicht gibt es da aber was in Richtung WebRTC oder WebSocket.

      Also arbeiten solche Konstrukte vermutlich immer mit flush()?
      OK, dann schau ich auf jeden Fall mal, ob meine Server so arbeiten, wie gewollt. Aktuell ist es ne eigene Anwendung für mich.

      1. Meine Herren,

        Nun, wenn flush() nicht funktioniert, dann wirst du das Gebilde aus PHP und Webserver kaum dazu überreden können, die Ergebnisse sofort und stückweise zu übertragen. Etwas stärkeres als flush() kenne ich nicht. Vielleicht gibt es da aber was in Richtung WebRTC oder WebSocket.

        Also arbeiten solche Konstrukte vermutlich immer mit flush()?
        OK, dann schau ich auf jeden Fall mal, ob meine Server so arbeiten, wie gewollt. Aktuell ist es ne eigene Anwendung für mich.

        Der Webserver kann sich bei flush dazu entscheiden noch zu warten, bis eine gewisse Menge an Daten vorliegt und sie dann zusammen abesenden. Es ist also nicht sichergestellt, dass wirklich beim Aufruf von flush die Daten geschickt werden, man teilt dem Webserver nur mit, dass er die Daten schonmal abschicken darf, wenn er möchte. Ich weiß nicht, ob man das Verhalten irgendwo in den Tiefen der Apache-Welt konfigurieren kann.

        Ansonsten sind Server-Sent-Events für dich vermutlich interessant:
        https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events

        --
        Hey Girl,
        i wish you were asynchronous, so you'd give me a callback.