ASP.NET - Life Cycle
The ASP.NET life cycle could be divided into two groups:
• Page Life Cycle
• Life-cycle Events
Page Life Cycle
• Page request - When ASP.NET get a page request, it decided to parse and compile the page, or find out the ASP.NET page version. Then response is sent.
• Start life cycle - In the start stage, page properties such as Request andResponse are set. At this stage, the page also determines whether the request is a postback or a new request and sets the IsPostBack property. The page also sets the UICulture propert.
• Page initialization - At this stage , controls on the page are available and each control's UniqueID property is set. A master page and themes are also applied to the page. For a new request, postback data is loaded and the control properties are restored to the view-state values.
• Page load - control properties are loaded with information recovered from view state and control state.
• Postback event handling - If the request is a postback (old request), the related event handler is invoked.
• Page rendering - view state is saved for the page and all controls. During the rendering stage, the page calls the Render method for each control, providing a text writer that writes its output to the OutputStream object of the page's Response property.
• Unload - The rendered page is sent to the client and page properties, such as Response and Request, are unloaded and all cleanup done.
Life-cycle Events
• PreInit - PreInit is the first event in page life cycle. It checks the IsPostBack property and determines whether the page is a postback. It sets the themes and master pages, creates dynamic controls, and gets and sets profile property values. This event can be handled by overloading the OnPreInit method or creating a Page_PreInit handler.
• Init - Init event initializes the control property and the control tree is built. This event can be handled by overloading the OnInit method or creating a Page_Init handler.
• InitComplete - InitComplete event allows tracking of view state. All the controls turn on view-state tracking.
• LoadViewState - LoadViewState event allows loading view state information into the controls.
• LoadPostData - During this phase, the contents of all the input fields are
defined with the <form> tag are processed.
defined with the <form> tag are processed.
• PreLoad - PreLoad occurs before the post back data is loaded in the controls. This event can be handled by overloading the OnPreLoad method or creating a Page_PreLoad handler.
• Load - The Load event is raised for the page first and then recursively for all child controls. The controls in the control tree are created. This event can be
handled by overloading the OnLoad method or creating a Page_Load handler.
handled by overloading the OnLoad method or creating a Page_Load handler.
• LoadComplete - The loading process is completed, control event handlers are
run, and page validation takes place. This event can be handled by overloading the OnLoadComplete method or creating a Page_LoadComplete handler.
run, and page validation takes place. This event can be handled by overloading the OnLoadComplete method or creating a Page_LoadComplete handler.
• PreRender - The PreRender event occurs just before the output is rendered. By handling this event, pages and controls can perform any updates before the output is rendered.
• PreRenderComplete - As the PreRender event is recursively fired for all child controls, this event ensures the completion of the pre-rendering phase.
• SaveStateComplete - State of control on the page is saved. Personalization, control state and view state information is saved. The HTML markup is generated. This stage can be handled by overriding the Render method or creating a Page_Render handler.
• UnLoad - The UnLoad phase is the last phase of the page life cycle. It raises the UnLoad event for all controls recursively and lastly for the page itself. Final cleanup is done and all resources and references, such as database connections, are freed. This event can be handled by modifying the OnUnLoad method or creating a Page_UnLoad handler.

No comments:
Post a Comment