asp.net页生命周期

       asp.net页运行时,此页将经历一个生命周期,在生命周期中将执行一系列处理步骤.这些步骤包括初始化,实例化控件,还原和维护状态,运行事件处理程序代码以及进行呈现.
     除了页生命周期阶段以外,还有在请求前后出现的应用程序阶段,但这些并不特定于页.
1.页请求:页请求发生在页生命周期开始之前,用户请求页时,asp.net将确定是否需要分析和编译页(从而开始页的生命周期),或者是否可以在不运行页的情况焉发送页的缓存版本以进行响应.
2.开始:在开始阶段,将设置页属性,如request和response.在此阶段,页还将确定请求是回发还是新请求,并设置IsPostBack属性,此外,在开始阶段期间,还将设置页的UICulture属性.
3.页初始化:页初始化期间,可以使用页中的控件,并将设置每个控件的UniqueID属性.此外,任何主题都将应用于页.如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值.
4.加载:加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性.
5.验证:在验证期间,将调用所有验证程序控件的Validate方法,此方法将设置各个验证程序控件和页的IsValid属性.
6.回发事件处理:如果请求是回发请求,则将调用所有事件处理程序.
7.呈现:在呈现期间,视图状态将被保存到页,然后将调用每一个控件,以将其呈现的输出提供给页的response属性的outputstream.
8.卸载.完全呈现页.将页发送到客户崦并准备丢弃时,将调用卸载.此时,将卸载页属性(Response和Request)并执行清理.


页事件:
Page_PreInit:   1.使用IsPostBack属性确定是否是第一次处理该页.
                       2.创建或重新创建动态控件.
                       3.动态设置主控页.
                       4.动态设置Theme属性
                       5.读取或设置配置文件属性值.
 如果请求是回发请求,则控件的值尚未从视图状态还原.如果在此阶段设置控件属性,则其值可能会在下一阶段被改写.
Page_Init: 读取或初如化控件属性
Control events.1.执行特定于应用程序的处理.
                        如果页包含验证程序控件,请在执行任何处理之前检查页和和个验证控件的IsValid属性.
                         如果特定事件,如Button 控件的Click事件.
Page_PreRender :对页的内容进行最后更改.
Page_Unload:执行最后的清理工作,可能包括.
      1.关闭打开的文件和数据库连接.
      2.完成日志记录或其他特定于请求的任务.
在卸载阶段,页及其控件已被呈现,因此无法对响应流做进一步更改.如果尝试调用方法(如Response.Write方法),则该页将引发异常.
posted @ 2006-11-24 16:37  平平  阅读(379)  评论(0编辑  收藏  举报