Glengamoi · AspHeute (Artikel) · .NET Heute (RSS-Suche) · .NET Blogs · Glengamoi Suche (Installieren via Klick)

Glengamoi

Die Diskussionsforen der deutschen .NET Community
Willkommen bei Glengamoi. Anmeldung | Registrieren | Hilfe
in Suchen

Progressbar bzw. Serverstatus auf Client

Letzter Beitrag 02-08-2007 18:19 von Claudius Ceteras. 5 Antworten.
Seite 1 von 1 (6 Treffer)
Beiträge sortieren: Zurück Weiter
  • 02-07-2007 14:00

    Progressbar bzw. Serverstatus auf Client

    Hallo,

    vielleicht bin ich nicht der erste, aber wie kann ich bei einer Client-Server Anwendung unter ASP.NET es schaffen, das wenn der Server mit Datenbankaufgaben beschäftigt ist, auf dem Client ein Status der aktuellen Aktionen ausgegeben werden kann.
    Unter Windows-Forms ist das ja kein Problem.
    Aber unter Web_Forms müsste das doch auch irgendwie möglich sein.

    Hat jemand vielleicht eine Idee wie das geht.

    Danke.

    Peter
    • IP-Adresse ist Registriert
  • 02-07-2007 14:38 Antwort zu

    Re: Progressbar bzw. Serverstatus auf Client

    At 02:00 PM 2/7/2007, you wrote:
    >Hat jemand vielleicht eine Idee wie das geht.

    Sowas?

    http://weblogs.asp.net/scottgu/archive/2006/09/21/Tip_2F00_Trick_3A00_-UpdateProgress-Control-and-AJAX-Activity-Image-Animations.aspx

    Chris
    • IP-Adresse ist Nicht registriert
  • 02-07-2007 15:05 Antwort zu

    AW: Re: Progressbar bzw. Serverstatus auf Client

    Na ja.
    Das trifft es nicht so ganz.
    Ich möchte halt keine simple Animation anzeigen während der Server arbeitet.
    Das habe ich bereits schon.

    Ich möchte vielmehr nach bestimmten Fortschritten der Servertätigkeit, diese dem Client mitteilen.
    Das kann entweder in der Form einer Progressbar sein, oder aber auch eines Textfeldes.
    z.B.:

    erstelle Kopfsätze......
    erstelle Positionssätze......
    berechne Kosten....
    fertig

     

    Peter
    • IP-Adresse ist Registriert
  • 02-08-2007 0:03 Antwort zu

    RE: Progressbar bzw. Serverstatus auf Client

    > vielleicht bin ich nicht der erste, aber wie kann ich bei
    > einer Client-Server Anwendung unter ASP.NET es schaffen, das
    > wenn der Server mit Datenbankaufgaben beschäftigt ist, auf
    > dem Client ein Status der aktuellen Aktionen ausgegeben werden kann.
    > Unter Windows-Forms ist das ja kein Problem.
    > Aber unter Web_Forms müsste das doch auch irgendwie möglich sein.
    >
    > Hat jemand vielleicht eine Idee wie das geht.

    Du musst die komplette Seite schicken und vor dem schliessenden ein
    script-tag aufmachen und dann immer über funktionsaufrufe daten an die Seite
    schicken:

    UpdateStatus('erstelle Kopfsätze');
    ...
    ...

    Die UpdateStatus-Funktion hast Du weiter oben definiert, so dass der
    übergebene Text irgendwo in ein Textfeld oder DIV reingeschrieben wird.
    Nach jedem Update musst Du natürlich die Ausgabe Flushen, damit es auch am
    Client ankommt.

    So sieht es theoretisch aus und funktionier ziemlich straight forward in
    normalen Skript-Sprachen wie ASP oder PHP.
    Bei ASP.NET wirst Du da ein paar Klimmzüge machen müssen, denn normalerweise
    laufen ja alle möglichen Events vor dem Rendern ab und erst zum Schluss wird
    die komplette Webseite an den Client geschickt.
    Ein einfaches Response.Write in so ziemlich jedem Event wäre zu früh, also
    bevor irgendwas von der Seite am Client ankommt und wenn man es nach dem
    Rendern macht, ist das nacht dem schliessenden , also eigentlich zu
    spät, weil es zu ungültigem HTML führt.

    Eine andere Möglichkeit wäre die Seite komplett aufzubauen und dann per AJAX
    die einzelnen Schritte aufzurufen und entsprechend anzuzeigen. Das führt
    natürlich zu dem Problem, dass clientseitig Schritte verhindert werden
    können.

    Oder Du startest einen Thread, der die Arbeit im Hintergrund erledigt und
    beendest die Seite.
    Die Seite holt dann über AJAX den Fortschritt, den der Thread natürlich
    irgendwo, z.B. In ne Application-Variable o.ä. Reinschreiben muss.


    Claudius
    • IP-Adresse ist Nicht registriert
  • 02-08-2007 8:16 Antwort zu

    AW: RE: Progressbar bzw. Serverstatus auf Client

    Danke Claudius,

    das klingt ja schon mal nicht schlecht.

    Aber wie starte ich einen neuen Thread und wie hole ich den Fortschritt per AJAX ab.
    Hast du dazu mal ein Beispiel.
    Ich habe nämlich noch nicht damit gearbeitet.

    Danke.

    Peter
    • IP-Adresse ist Registriert
  • 02-08-2007 18:19 Antwort zu

    RE: AW: RE: Progressbar bzw. Serverstatus auf Client

    > das klingt ja schon mal nicht schlecht.
    >
    > Aber wie starte ich einen neuen Thread und wie hole ich den
    > Fortschritt per AJAX ab.
    > Hast du dazu mal ein Beispiel.
    > Ich habe nämlich noch nicht damit gearbeitet.

    Ich hatte so in der Art gedacht:

    public void MachWas()
    {
    Thread myThread = new Thread(new ThreadStart(this.MachWasThread));
    myThread.Start();
    }

    private void MachWasThread()
    {
    Application("Status") = "erstelle Kopfsätze";

    // code....
    ....

    Application("Status") = "erstelle Positionssätze";

    // code....
    ....

    Application("Status") = "berechne Kosten";

    // code....
    ....

    Application("Status") = "fertig";
    }


    Für Ajax schau mal hier:
    http://ajax.asp.net/

    Oder wenn es nicht so gross und komplex weren soll, hier:
    http://www.ajaxpro.info/


    Claudius
    • IP-Adresse ist Nicht registriert
Seite 1 von 1 (6 Treffer)