Während ich mit angular2 einem kleinen Hindernisse bin das Experimentieren kam:angular2 http requist Umgang CHUNKE die Antworten
ich PHP-Code Hexe habe Stücke von Antworten liefert mit "ob_flush".
im vorderen Ende habe ich erfolgreich "XHR = XMLHttpRequest" Anfragen und erhielt die Antworten und damit umgehen "xhr.onprogress()" und "xhr.onreadystatechange()" verwendet wird.
Jetzt wenn ich die gleiche Funktionalität mit angular2 http.get() zu bekommen versuchte, konnte ich die Ergebnisse, wie sie vom Server nicht ausgegeben ankommen! Stattdessen werden die Ergebnisse am Ende des Prozesses nach Empfang der letzten Antwort durch eckig angezeigt.
Ich denke, das Observer Objekt rxjs puffert die Antworten !.
Wie kann ich dieses Verhalten ändern?
hier ist mein PHP-Code, testing.php:
echo date('H:i:s')." Loading data!";
ob_flush();
flush();
sleep(5);
echo "Ready to run!";
hier mein angular2 Code ist:
template: `
<div>
<h3>experimenting!</h3>
<button (click)="callServer()">run the test</button>
<div>the server says: {{msg}}</div>
</div>`
export class AppComponent {
msg:any;
constructor (private http:Http){}
callServer(){
this.http.get("localhost/testing.php")
.subscribe(res=> this.msg= res.text());
}
}
Wenn ich diesen Code ausführen es zeigt nach 5 Sekunden: (19:59:47 Daten werden geladen! Betriebsbereit!).
Es sollte sofort ausgegeben: (19.59.47 Daten werden geladen!).
Dann nach 5 Sekunden ersetzt die vorherige Nachricht mit: (Ready to run!)