Asp页面加载生命周期

为了更好的理解Asp页面加载时的过程,我画了一个大概的流程图(详见附件),参考O'Reilly公司出版的Programming Asp.Net第二版。
在页面加载期间,生命周期包括以下步骤:
1.调用页面及页面上控件的构造函数。

2.确定是第一次加载啊,还是自回传啊,还是跨页回传。

3.调用预初始化方法,
protected override void OnPreInit(EventArgs e)
,因为该方法在加载个性化主题前调用,所以可以对服务器控件外观等做设置。参考:
[url]http://blog.csdn.net/itfly8/archive/2007/12/11/1930032.aspx[/url]

4.加载个性化主题

5.初始化。在此阶段程序构建控件树,这个阶段调用
protected override void OnInit(EventArgs e)
protected override void OnInitComplete(EventArgs e)
可以初始化任何值。

6.此时回传数据还未加载到控件中,根据第2步中访问模式的不同,会有两个不同的加载方式。
(1)如果页面为第一次加载,服务器直接调用预加载方法
protected override void OnPreLoad(EventArgs e)

(2)如果是回传模式,则加载页面和控件状态,同时,加载视图状态,即把页面中缓存的数据和控件捆绑到一起,然后通过Post方法来处理服务器上的数据,通过LoadPostData方法实现对需要回传的视图的更新,然后执行(1)中的预加载。

7.加载阶段执行用户的代码,显示客户端数据,层级加载控件树中的控件。此阶段可以通过
protected override void OnLoad(EventArgs e)
方法进行修改。

7.1中间调用
protected void Page_Load(object sender, EventArgs e)
方法

8.页面加载后,也会根据2中的回传模式,由不同分支处理。
(1)如果第一次加载,则直接调用
protected override void OnLoadComplete(EventArgs e)
完成加载
(2)如果是回传模式,并且当前状态较先前状态发生变化,会引起RaiseChangedEvents事件,客户端通过
protected override void RaisePostBackEvent(IPostBackEventHandler sourceControl, string eventArgument)
方法对该事件进行响应,然后执行(1)步调用加载完成方法。

9.预呈现阶段,这是呈现前最后一个可以对页面进行修改的阶段,调用
protected override void OnPreRender(EventArgs e)
方法进行处理。

10.保存状态。个性化,控件,页面状态及视图都会保存。

11.呈现阶段,将页面及服务器控件输出为HTML到前端展现,可以通过
protected override void Render(HtmlTextWriter writer)
方法进行重写,如有必要,可通过调用
protected override void CreateChildControls()
方法在控件树内创建并初始化控件。

12.卸载。此阶段完成最终清理工作,如释放数据库连接等。可通过
protected override void OnUnload(EventArgs e)
方法来加入自己的清理工作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值