WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 05.07.2004, 15:39   #1
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard ASP (bzw. ASP.NET) - Serverfortschritt am Client ausgeben....

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
renew ist offline   Mit Zitat antworten
Alt 05.07.2004, 16:02   #2
pixel
Jr. Member
 
Registriert seit: 05.07.2004
Beiträge: 39


Standard Schleife

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
pixel ist offline   Mit Zitat antworten
Alt 05.07.2004, 16:07   #3
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard Re: Schleife

Zitat:
Original geschrieben von pixel
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
Hoppala ich sollt vielleicht mehr ans schreiben denken wenn ich wirklich einen Beitrag im Forum verfasse....
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.
renew ist offline   Mit Zitat antworten
Alt 05.07.2004, 20:00   #4
kju
Senior Member
 
Registriert seit: 28.05.2002
Alter: 47
Beiträge: 141


kju eine Nachricht über ICQ schicken
Standard

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.
kju ist offline   Mit Zitat antworten
Alt 05.07.2004, 20:18   #5
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

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
Biri ist offline   Mit Zitat antworten
Alt 05.07.2004, 22:49   #6
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

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
renew ist offline   Mit Zitat antworten
Alt 06.07.2004, 16:20   #7
JackLemon
Senior Member
 
Registriert seit: 02.11.2002
Beiträge: 179


Standard

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)
JackLemon ist offline   Mit Zitat antworten
Alt 06.07.2004, 18:15   #8
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

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.
renew ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:55 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag