65.9K
CodeProject is changing. Read more.
Home

Asynchronous and Synchronous Page Processing Determination

starIconstarIconstarIconstarIconemptyStarIcon

4.00/5 (1 vote)

Nov 2, 2011

CPOL
viewsIcon

8030

An easy way to understand Ajax help in ASP.NET

Using this simple trick, everyone can easily ensure that page processing is synchronous or asynchronous.
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableHistory="true">
       </asp:ScriptManager>
       <asp:UpdatePanel ID="UpdatePanel1" runat="server">
         <ContentTemplate>
             <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
             <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
             <asp:Timer ID="Timer1" runat="server" Interval="40000" ontick="Timer1_Tick">
             </asp:Timer>
             <asp:Label ID="Label3" runat="server"></asp:Label>
         </ContentTemplate>

       </asp:UpdatePanel>

Code Behind

protected void Page_Load(object sender, EventArgs e)
       {
           if (ScriptManager1.IsInAsyncPostBack==true)
           {
               Label1.Text = "Page processing is Ashnchronuslly..";
           }
           else
           {
               Label1.Text = "Page Processing is Syncrhonulsy...";
           }
       }

       protected void Timer1_Tick(object sender, EventArgs e)
       {
           if (ScriptManager1.IsInAsyncPostBack == true)
           {
               Label2.Text = DateTime.Now.ToString();
           }
}

Description

For the First Request only Synchronous Processing is done.
                       Page Processing is Syncronously... Label
For the Second Request onwords
          Page Processing IS Asynchronously.. 11/1/2011 12:37:27 PM
Yes, for every 40 secs updatedpanel content is updated asynchronusly with the help of Timer Control Tick event, the updated time will be displayed in Lable2. We can ensure many things for every request and response internals with the help of any Firebug console window or any browsers WebDevelopment tools.

Like below for every 40 seconds:

POST http://localhost:1165/PageProces.aspx 200 OK 520ms	
POST http://localhost:1165/PageProces.aspx 200 OK 348ms	
POST http://localhost:1165/PageProces.aspx 200 OK 370ms	
POST http://localhost:1165/PageProces.aspx 200 OK 336ms	
POST http://localhost:1165/PageProces.aspx 200 OK 362ms	
POST http://localhost:1165/PageProces.aspx 200 OK 382ms	
POST http://localhost:1165/PageProces.aspx 200 OK 378ms