![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Ich habe ein Script welches eine gewisse Zeit am Server läuft um Thumbnails von Bildern zu erstellen.
Ich würde dem Client aber gerne mitteilen, wie weit der Server gerade ist od. zumindest erst dann zur nächsten Seite umschalten, wenn der Server die Bearbeitung beendet hat. Kennt dazu jemand eine Möglichkeit in ASP bzw. ASP.NET. Sowas hab ich eigentlich noch nie gelöst und ich weiß ehrlich gesagt auch nicht, wie ich das lösen soll, da ja die Kommunikation zwischen Client und Server "verbindungslos" ist, wenn einmal die Seite an den Client geliefert wurde. Ich wüsste auch nicht wonach ich suchen soll, da es ein etwas komisches Problem ist. (Aber ich denk mir irgendwie muss sowas funktionieren, da ich solche sachen schon mal gesehen hab, nur hab ich eben keinen Schimmer wie das funktionieren könnte) Ich dank euch schon mal, mfg LLR |
![]() |
![]() |
![]() |
#2 |
Jr. Member
![]() Registriert seit: 05.07.2004
Beiträge: 39
|
![]() Hallo,
vieleicht kannst du ja eine Schleife machen. Sprich du läufst alle bilder durch und erst wenn alle Bilder durch sind, dann gehst du auf die nächste Seite. schönen Tag pixel |
![]() |
![]() |
![]() |
#3 | |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Zitat:
Weil das was ich da oben geschrieben hab ergibt net viel sinn. ![]() Ja, klar hab ich eine Schleife um die Bilder zu bearbeiten. Und ich kann dem Benutzer natürlich keine andere Seite zeigen, da ja dann das Script abbrechen würde. Das interessante wäre eben, dem Browser mitzuteilen, dass er die Verbindung zum Server offen lassen soll und ich schreib häppchenweise die Seite raus. (wie z.B. Bild 1 fertig, Bild 2 fertig, ....) Weil mit ASP.Net ists ja derzeit so, dass der Browser erst die Seite bekommt wenn sie komplett "gerendert" ist, also wenn alle Anweisungen vom Compiler beendet sind wird sie an den User geschickt. Und das könnte evt. lange dauern und ich würde ganz gerne darüber informieren. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
![]() |
![]() ganz einfach...
![]() 1. dein script schreibt während es läuft den status immer in eine variable (bild 57 von 1279 fertig) 2. am client öffnet sich beim starten des scripts z.b. ein popup das per meta refresh alle z.b. 2 sekunden den status am server abfragt... das könnte man auch schön mit einem progress bar verbinden ![]()
____________________________________
There are two rules for ultimate success in life. 1. Never tell everything you know. |
![]() |
![]() |
![]() |
#5 |
Hero
![]() Registriert seit: 04.09.2001
Beiträge: 894
|
![]() hi !
kju beschreibt das schon ganz richtig. am client (browser) ein automatisches refresh alle paar sekunden. am server würde ich das so realisieren, dass ich einen asynchronen thread starte, der jeweils wenn ein thumbnail fertig ist ein event auslöst. deine asp.net seite kann dieses event dann abonieren und mitzählen, wie oft es ausgelöst wurde. du kannst auch noch ein anderes event auslösen, wenn das genze fertig ist, oder dem benutzer z.B. die möglichkeit bieten, das ganze abzubrechn u.a. wenn nötig, kann ich dir auch beispielsource schicken (hab ich leider grad net bei der hand), solltest aber selbst was passendes finden können. fg -hannes |
![]() |
![]() |
![]() |
#6 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Dank euch mal. Hört sich schon sehr gut an.
@Biri Wennst einen Beispiel-Code hast wär das natürlich ideal. Dann kann ich mir das in ruhe anschaun und auf meine Bedürfnisse umbauen. Danke nochmal, mfg LLR |
![]() |
![]() |
![]() |
#7 |
Senior Member
![]() Registriert seit: 02.11.2002
Beiträge: 179
|
![]() das mit dem meta-refresh funktioniert zwar - wenn man ein bisschen bastelt - ganz gut, aber nicht unbedingt ideal.
auch ein gute möglichkeit, allerdings nur wenn du keine zahl aktualisieren sondern einen fortschritt dokumentieren möchtest: schreib einfach den jeweiligen fortschritt direkt in die html-response, dann immer zusätzlich ca. 1000 leerzeichen, und dann mach ein flush() oder wie das heißt in asp(x). bewirkt folgendes: die meisten browser rendern den content, wenn er in keiner tabelle oder ähnlichen struktur steht (!!), während sie ihn laden. wenn du auf der serverseite deinen reponse-buffer leerst wird er sofort zum client geschickt, durch die 1000 leerzeichen erkennt der browser dass doch wieder ein darstellenswertes stück body gekommen ist (und weil das ganze html ist siehst du die leerzeichen im browser nicht) und rendert es. das wird in dieser form zb beim bilder-upload-status der PHPGallery (http://gallery.sourceforge.net) verwendet. am schluss könntest du dann ja einen javascript mitschicken, der eine andere seite lädt oder so. ist vom programmieraufwand her lächerlich (verglichen mit der metarefresh-lösung) und funktioniert ganz fein. das könnte dann zb. ausgeben: - Thumbnail 1 wird erstellt... - Thumbnail 2 wird erstellt... - Thumbnail 3 wird erstellt... - Thumbnail 4 wird erstellt... - Thumbnail 5 wird erstellt... Fertig! hoffe das war jetzt irgendwie verständlich -JL
____________________________________
It\'s not a bug... It\'s a feature! You know, the main advantage of encrypted paella over ordinary paella is that nobody but you knows what you are eating... (Alvaro) |
![]() |
![]() |
![]() |
#8 |
Inventar
![]() Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552
|
![]() Ja is verständlich.
Hört sich ganz gut an. Muss ich mir noch anschaun, wie man das machen könnte. Danke auf alle Fälle. ![]() |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|