Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

ASP.NET C#: "Bitte warten"-Meldung

Yves3 / 3 Antworten / Baumansicht Nickles

Hallo,

Beim Abschicken eines Formulars müssen auf dem Server verschiedene relativ zeitintensive Operationen durchgeführt werden. Der Benutzer sollte direkt nach dem Abschicken darüber informiert werden ("Bitte warten"-Meldung).
Meine erste Idee war Javascript, das gibt aber zwei Probleme:
1. Javascript muss eingeschaltet sein.
2. Ich führe direkt nach dem Abschicken eine serverseitige Validierung der Eingaben durch. Falls das Resultat ungültig ist, wird innert kürzester Zeit eine entsprechende Meldung zurückgegeben.
Das kann ich aber zum Zeitpunkt, wo ich die Javascript-Meldung ausgebe, noch nicht wissen. Das führt dazu, dass die "Bitte warten"-Meldung nur kurz (kaum lang genug um gelesen werden zu können) aufblinkt, und dann die entsprechende Meldung aus der Validierung erscheint, was leider sehr unprofessionell wirkt.

Falls ich die ganze Validierung nicht doppelt (Server -und Clientseitig) machen will, muss diese Meldung aus meiner Sicht irgendwie vom Server kommen. Leider habe ich keine Ahnung, wie das gehen könnte. Soviel ich weiss gibt es nämlich auf eine Anfrage vom Client eine Antwort vom Server und es ist nicht möglich zwei aufeinanderfolgende Antworten zu geben.

Kennt sich hier jemand mit ASP.NET aus und kann mir helfen?

Vielen Dank im Voraus!

bei Antwort benachrichtigen
Hanussen Yves3 „ASP.NET C#: "Bitte warten"-Meldung“
Optionen

Du könntest per pseudo-"Ajax" einen WebService nach dem Status fragen und Java-Seitig über die Auswertung des ActiveXObject("Microsoft.XMLDOM") :

// 0 object is not initialized
// 1 Loading object is loading data
// 2 Loaded object has loaded data
// 3 Data from object can be worked with
// 4 Object completely initialized

den Client dann zu einer anderen Seite weiterleiten.

Oder du baust das komplette Dokument auf Ajax um und prüfst bei jeder Eingabe das entsprechende Eingabefeld server-seitig durch partiellen Refresh.

MfG Hanussen

bei Antwort benachrichtigen
xafford Yves3 „ASP.NET C#: "Bitte warten"-Meldung“
Optionen

Es gibt noch ein paar andere Möglichkeiten:


  • Ein I­Frame nutzen

  • In kurzen Intervallen ein Meta-Redirect nutzen auf eine Zielseite, die wieder einen redirect auf die "Warten-Seite" zurück gibt, wenn die Verarbeitung noch nicht abgeschlossen ist

  • Flash nutzen



Würde mir mal so spontan und auf die Schnelle einfallen.
Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen
Yves3 xafford „Es gibt noch ein paar andere Möglichkeiten: Ein I Frame nutzen In kurzen...“
Optionen

Vielen Dank für die Tipps!
Ich habe es jetzt mit AJAX und dem UpdateProgress-Element gelöst. (Ein bisschen Klick, Dran & Drop, und schon läuft das)
Javascript muss zwar immer noch eingeschalten sein, aber ich habe eine Verzögrung von einer halben Sekunde eingebaut, womit sich das zweite Problem beheben lässt.

Übrigens: Beim IE7 werden animierte GIF-Bilder standardmässig doch tatsächlich nicht animiert dargestellt. Damit liesse sich sooo etwas schönes machen :´(.
-->http://www.ajaxload.info/

bei Antwort benachrichtigen