ASP.NET 2.0中的页面生名周期(根据Dino的Introduction ASP.NET 2.0理解编写)

ASP.NET 2.0中页面的生命周期开始于ASP.NET运行环境执行IHttpHandler::ProcessRequest
方法时。该方法设置了页面的内部类,比如HTTP环境(context)、Request对象以及
Response对象等。
下一步是创建在aspx文件中定义的控件树。然后就是判断页面的模式(是PostBack、CallBack
交叉页面PostBack等)

第一个被引发的事件是PreInit事件,在这个事件过程处理返回后,页面会装载主题(Theme)
以及装载个人化(personalization)数据。在这个事件中可以对页面主题和个人化信息做
一些操作

页面初始化:每个页面控件都会引发Init事件,控件的Init事件比页面的Init事件先引发。

结束页面初始化:这时引发InitComplete事件,这个事件在所有的页面控件初始化完成后
引发。在Init事件和InitComplete事件中间happens—the view state of controls is
set up for tracking. Each control has its TrackViewState method called.
By default, this method sets a flag that instructs the control to track its view
state for changes.(不太理解,直接拿过来,呵呵)

装载控件State以及View State:在ASP.NET 2.0中,控件State是一个私有的View State,每一个
控件自己有责任来维护它。跟View State不同,控件State不能在控件外通过编程来改变,并且
不能被关闭。控件State在View State装载前装载。这些不会引发事件,但是可以通过重载方法
来实现编程。

装载PostBack数据:处理PostBack数据并且将他们的ID与控件ID对比,如果吻合则用这个数据来
更新控件。

Page PreLoading:在页面完成对提交数据的处理后引发PreLoad事件,可以在这个事件中处理任何
需要在页面装载开始前需要做的工作。

装载页面:引发Load事件,这个事件首先在控件中引发,最后是页面。在装载完成后会发生以下的
事情:页面会花一点时间来匹配提交的数据以及页面控件,这个工作是为了将State装载到动态创建
的控件中,如果页面有Callback处理程序,就会在这时引发。最后,如果提交的数据改变了某些控件
会引发事件的属性,那么控件事件会引发,例如改变了TextBox的Text属性,那么TextChanged事件
就会引发。

PostBack事件:页面执行与客户端事件(例如点击)相关联的服务器端代码。这时页面进入输出(render)
阶段

Prerendering:在引发PreRender事件前,叶面会确认所有的控件已经成功创建了。PreRender事件会首先
在页面中引发,然后顺序在控件中引发。然后就会引发页面的PreRenderComplete事件并且保存个人化数据
控件以及view state。


Rendering:创建输出到客户端的内容,一般重载这个事件来处理输出的内容。

Page unload:引发Unload事件,在页面对象被释放时引发,The
Unload event is followed by the Dispose event, which indicates that
the page object is being destroyed.

你可能感兴趣的:(编程,.net,asp.net,UP,asp)