progress bar status

Discussion in 'ASP .Net' started by CT, Sep 27, 2006.

  1. CT

    CT Guest

    Dear All,
    Is there any to show progress status of all activities like database retrieval, navigation from one page to another page? I am looking for some source code to integrated in my .net application.

    Any help is very much appreciated.

    Thank you
    CT
    CT, Sep 27, 2006
    #1
    1. Advertising

  2. Hi,

    CT wrote:
    > Dear All,
    > Is there any to show progress status of all activities like database retrieval, navigation from one page to another page? I am looking for some source code to integrated in my .net application.
    >
    > Any help is very much appreciated.
    >
    > Thank you
    > CT


    To display server-side activity progress on the web client witout
    periodically refreshing the page, you need to use AJAX.

    Here is a previous post I made in that newsgroup:

    The simplest implementation of AJAX in .NET is using ASHX Custom
    HttpHandlers. It's very simple: In your web site or web application
    project, Add New Item / Generic handler.

    Then, in the code behind, implement the methods (Studio 2005 gives you a
    template).

    From the client, use JavaScript and XmlHttpRequest to send the request
    and read the response. There are many tutorial online.

    Example for a simple asynchronous request:

    var oHttp = null;
    if ( window.XMLHttpRequest )
    {
    oHttp = new window.XMLHttpRequest();
    }
    else
    {
    if ( window.ActiveXObject )
    {
    oHttp = new window.ActiveXObject( "Microsoft.XMLHTTP" );
    }
    else
    {
    throw "UNSUPPORTED PLATFORM";
    }
    }
    if ( !oHttp )
    {
    throw "Cannot create XmlHttpRequest";
    }

    var strQuery = "?param1=value1&param2=value2";
    oHttp.open( "GET",
    "myHandler.ashx" + strQuery,
    true ); // true = async, false = sync

    oHttp.onreadystatechange = function()
    {
    if ( oHttp.readyState == 4 )
    {
    oHttp = null;
    fnCallback( oHttp );
    }
    }

    oHttp.send( null );

    Code behind:

    In ProcessRequest, use the "context" parameter to extract the
    QueryString, and then you can process according to the parameters.

    For the Response, if you want to send XML code back, make sure to set
    context.Response.ContentType = "text/xml; charset=utf-8";

    To save an XML document to the response, use
    docResponse.Save(
    new XmlTextWriter( context.Response.OutputStream,
    context.Request.ContentEncoding ) );

    In the JavaScript, the XML code will be available in oHttp.responseXML.
    The response is also available in plain text in oHttp.responseText. Also
    check the oHttp.status, which contains status like 200 (OK), 500 (Server
    error), etc...

    HTH,
    Laurent
    --
    Laurent Bugnion, GalaSoft
    Software engineering: http://www.galasoft-LB.ch
    PhotoAlbum: http://www.galasoft-LB.ch/pictures
    Support children in Calcutta: http://www.calcutta-espoir.ch
    Laurent Bugnion, Sep 27, 2006
    #2
    1. Advertising

  3. "Laurent Bugnion" <> wrote in message
    news:...
    > Hi,
    >
    > CT wrote:
    > > Dear All,
    > > Is there any to show progress status of all activities like

    database retrieval, navigation from one page to another page? I am looking
    for some source code to integrated in my .net application.
    > >
    > > Any help is very much appreciated.
    > >
    > > Thank you
    > > CT

    >
    > To display server-side activity progress on the web client witout
    > periodically refreshing the page, you need to use AJAX.
    >


    Why? More specifically why is a asynchronous request needed?

    A window.timeout to periodically kick off a request for progess info should
    be sufficient there's no real need to make the request itself asynchronous
    that I can see.

    > Here is a previous post I made in that newsgroup:
    >
    > The simplest implementation of AJAX in .NET is using ASHX Custom
    > HttpHandlers. It's very simple: In your web site or web application
    > project, Add New Item / Generic handler.
    >
    > Then, in the code behind, implement the methods (Studio 2005 gives you a
    > template).
    >
    > From the client, use JavaScript and XmlHttpRequest to send the request
    > and read the response. There are many tutorial online.
    >
    > Example for a simple asynchronous request:
    >
    > var oHttp = null;
    > if ( window.XMLHttpRequest )
    > {
    > oHttp = new window.XMLHttpRequest();
    > }
    > else
    > {
    > if ( window.ActiveXObject )
    > {
    > oHttp = new window.ActiveXObject( "Microsoft.XMLHTTP" );
    > }
    > else
    > {
    > throw "UNSUPPORTED PLATFORM";
    > }
    > }
    > if ( !oHttp )
    > {
    > throw "Cannot create XmlHttpRequest";
    > }
    >
    > var strQuery = "?param1=value1&param2=value2";
    > oHttp.open( "GET",
    > "myHandler.ashx" + strQuery,
    > true ); // true = async, false = sync
    >
    > oHttp.onreadystatechange = function()
    > {
    > if ( oHttp.readyState == 4 )
    > {
    > oHttp = null;
    > fnCallback( oHttp );
    > }
    > }
    >
    > oHttp.send( null );
    >
    > Code behind:
    >
    > In ProcessRequest, use the "context" parameter to extract the
    > QueryString, and then you can process according to the parameters.
    >
    > For the Response, if you want to send XML code back, make sure to set
    > context.Response.ContentType = "text/xml; charset=utf-8";
    >
    > To save an XML document to the response, use
    > docResponse.Save(
    > new XmlTextWriter( context.Response.OutputStream,
    > context.Request.ContentEncoding ) );
    >
    > In the JavaScript, the XML code will be available in oHttp.responseXML.
    > The response is also available in plain text in oHttp.responseText. Also
    > check the oHttp.status, which contains status like 200 (OK), 500 (Server
    > error), etc...
    >
    > HTH,
    > Laurent
    > --
    > Laurent Bugnion, GalaSoft
    > Software engineering: http://www.galasoft-LB.ch
    > PhotoAlbum: http://www.galasoft-LB.ch/pictures
    > Support children in Calcutta: http://www.calcutta-espoir.ch
    Anthony Jones, Sep 27, 2006
    #3
  4. Hi,

    Anthony Jones wrote:

    > Why? More specifically why is a asynchronous request needed?
    >
    > A window.timeout to periodically kick off a request for progess info should
    > be sufficient there's no real need to make the request itself asynchronous
    > that I can see.


    In theory you're right. In praxis, however, I recommend against
    synchronous XmlHttpRequest calls. If you send a synchronous request, the
    whole JavaScript engine is blocked until the response arrives on the
    client. It means that no animation, no other requests, no other
    background activity will run as long as the response doesn't arrive.
    Since we're on the web, it may take some time.

    HTH,
    Laurent
    --
    Laurent Bugnion, GalaSoft
    Software engineering: http://www.galasoft-LB.ch
    PhotoAlbum: http://www.galasoft-LB.ch/pictures
    Support children in Calcutta: http://www.calcutta-espoir.ch
    Laurent Bugnion, Sep 27, 2006
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Matt
    Replies:
    0
    Views:
    3,520
  2. John Hann
    Replies:
    0
    Views:
    6,030
    John Hann
    Aug 21, 2004
  3. Charlie Zhang
    Replies:
    3
    Views:
    1,233
    Paul Lutus
    Aug 16, 2004
  4. Matt
    Replies:
    9
    Views:
    70,748
  5. Matt
    Replies:
    9
    Views:
    514
    kaeli
    Aug 23, 2004
Loading...

Share This Page