ASP.NET 页面的生命周期

ASP.NET页面编程模式不同于传统Winform,用户请求页面后,经历的过程如下。

1.用户HTTP GET方式请求服务器该页面,服务器执行初步处理。      (HTTP请求连接)

2.服务器动态加载页面控件,处理后。返回静态网页给客户端(浏览器)。   (这时,HTTP连接断开)

3.用户输入信息或进行菜单选项,单击按钮。

4.页面回发给web服务器(HTTP POST方法),回发目标若无指定的话就是该页本身。     (HTTP连接)

5.web服务器再次运行该页面,并使用用户的输入信息。

6.页面执行通过编程进行的操作。

7.页面将处理结果生成静态页面回发给客户端(浏览器)。            (HTTP连接断开)

 

 

用户请求ASP.NET网页时,将创建该页面的新实例(无论是回发还是首次请求),该页执行处理,将标记呈现到客户端,然后该页被丢弃。当用户点击按钮回发数据,又将创建该页的新实例,然后执行处理,然后被丢弃。

 

 

一个ASP.NET页面的生成,要经历如下几个阶段

 


 

阶段 解释

 


 

页面请求 发生在页面生命周期开始前。用户请求页面时,ASP.NET确定是否要分析和编译页面(从而开始页的声明周期),或 者发送缓存版本。

开始 设置页面属性,Response、Request等。确定页面是首次请求还是回发页面,设置IsPostBack属性。

页面初始化 初始化控件,。如果是回发页面,则回发数据尚未加载,控件属性值尚未还原为视图状态中的值。

加载      加载期间,如果是回发页面,则从视图状态和控件状态恢复信息。

验证      验证控件是否正确验证。

回发事件处理      如果当前是回发页面,则调用事件处理程序。

呈现      在呈现前,会针对页面保存所有控件的视图状态,在呈现阶段页面会对每个控件调用Render方法,将控件的输入写入      页面的Response属性的OutputStream中

卸载                 完全呈现页面并发送给客户端,准备丢弃该页面,调用卸载,此时将卸载页面属性,并清理。


 

 

各阶段发发生事件的可运行代码


 

事件 方法 发生 重要事件解释

 


 

PreInit Page_PreInit 初始化之前   确定IsPostBack属性。

Init Page_Init 控件初始化 用该事件来读取或初始化控件的属性。

InitComplete    Page_InitComplete 

PreLoad Page_PreLoad 在Load事件之前 如果需要在Load之前对页或控件进行处理,可用该事件。

Load Page_Load Page调用OnLoad 获取或设置控件属性,并建立数据库连接。

控件事件 控件事件回传时发生 处理控件特定事件。

LoadComplete Page_LoadComplete 加载完成时发生 对需要加载页面上所有其他控件的任务使用该事件。

PreRender Page_PreRender 呈现前发生     使用该事件对页或控件内容进行最后更改。

Render Page_Render 呈现阶段 如果创建自定义控件,通常要覆盖此方法以输出控件。

Unload Page_Unload 先控件再页面 进行清理工作,卸载该页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值