Entwickler-Ecke

Internet / Netzwerk - Mehrere Anfragen an Website per IdHTTP.Post


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 user profile iconNarses: I- durch Code-Tags ersetzt


Narses - Mo 08.08.11 10:52

Moin!

user profile iconrizla hat folgendes geschrieben Zum zitierten Posting springen:
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"... :?

user profile iconrizla hat folgendes geschrieben Zum zitierten Posting springen:
Gibt es die Möglichkeit, das ganze wie einen Stack abzuarbeiten?
user profile iconrizla hat folgendes geschrieben Zum zitierten Posting springen:
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:

user profile iconrizla hat folgendes geschrieben Zum zitierten Posting springen:
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