rizla - Mo 08.08.11 10:17
Titel: Mehrere Anfragen an Website per IdHTTP.Post
Hallo DFler,
von einer Seite fordere ich mehrere Daten an, diese erhalte ich als Ergebnis eines IdHttp.Post-Aufrufes.
Dies funktioniert auch, allerdings habe ich das Gefühl, daß das ganze nicht sehr sauber ist.
Theoretisch funktioniert das so:
www.seite.de/getdata?id=Nummer.
In einer Schleife sende ich nun die Anfragen (id=0 bis id=9) an das Script und erhalte im Ergebnis die Daten.
Gibt es die Möglichkeit, das ganze wie einen Stack abzuarbeiten? Zum Beispiel in der Form
Delphi-Quelltext
1: 2: 3:
| for iDataID = 0 to 9 do if ServerReady then RetrieveData(iDataID); |
Es sind keine großen Datenmengen, die zurückkommen (maximal 20kb an HTML-Daten), aber es dauert manchmal schon ein paar Sekunden (bis zu 15), bis die nächsten Daten kommen,
aber 150 Sekunden (>3 Minuten) ist schon viel. Dabei friert auch die Form ein (auch mit IdAntiFreeze).
Den Download habe ich (noch) nicht als Thread (ich glaube, deswegen friert die Form ein), werde dies aber dann wohl noch machen (müssen).
Ist in diesem Fall z.B. OnWorkBegin, OnWork & OnWorkEnd zu nutzen?
Beste Grüße
rizla
Moderiert von
Narses: I- durch Code-Tags ersetzt
Narses - Mo 08.08.11 10:52
Moin!
rizla hat folgendes geschrieben : |
von einer Seite fordere ich mehrere Daten an, diese erhalte ich als Ergebnis eines IdHttp.Post-Aufrufes.
Dies funktioniert auch, allerdings habe ich das Gefühl, daß das ganze nicht sehr sauber ist.
Theoretisch funktioniert das so:www.seite.de/getdata?id=Nummer.
In einer Schleife sende ich nun die Anfragen (id=0 bis id=9) an das Script und erhalte im Ergebnis die Daten. |
Warum sollte das nicht "sauber" sein? :gruebel: Klingt erstmal völlig OK. ;) Diese IdAntifreeze-Klamotte halte ich eher für "unsauber"... :?
rizla hat folgendes geschrieben : |
| Gibt es die Möglichkeit, das ganze wie einen Stack abzuarbeiten? |
rizla hat folgendes geschrieben : |
| Den Download habe ich (noch) nicht als Thread (ich glaube, deswegen friert die Form ein), werde dies aber dann wohl noch machen (müssen). |
Das lässt sich doch prima verbinden: gestalte den Thread so, dass er die ID eines Download übergeben kriegt, dann startest du alle Download-Threads auf einmal und reagierst z.B. auf das OnTerminate-Ereignis. :idea:
rizla hat folgendes geschrieben : |
| Ist in diesem Fall z.B. OnWorkBegin, OnWork & OnWorkEnd zu nutzen? |
Nein, das brauchst du nur, wenn du während des Downloads eine Performace-Messung machen willst.
cu
Narses