Web Page的生命周期

生命周期阶段

 

Web Page的生命周期_第1张图片

1.  Page request- 请求页面

发生在webpage生命周期之前,判断页面是编译还是把缓冲版本直接发给请求者。

  

2.  Start- 开始    

设置Page的Request,Response,IsPostBack的属性值,确定是回发还是请求  

 

3.  Page initialization- 初始化  

设置控件的UniqueID属性,应用页面的主题

如果此页面是回传页面(IsPostBack=true),那么页面里各个控件的新的值和ViewState还没有在此阶段被恢复。  

 

4.  Load- 加载   

如果页面是回传页面,则页面里各个控件的新的值和ViewState将被恢复或设置。  

 

5.  Validation- 确认      

页面中验证控件调用自己的Validate方法进行验证,以便设置自己的IsValid属性        

 

6.  Postback event handling- 回发事件处理       

所有的委托事件将被调用,调用所有事件处理程序  

 

7.  Rendering呈现

在呈现之前,会针对该页和所有控件保存视图状态

在呈现阶段中,页会针对每个控件调用Render 方法,它会提供一个文本编写器,用于将控件的输出写入页的 Response 属性的 OutputStream 对象中  

 

8.  Unload- 卸载      

Page及每个控件建立的实体都将被删除,资源被释放

 




生命周期事件

 

PreInit / Init / InitComplete -初始化

PreInit:检查IsPostBack,动态设置Master Page、Theme、控件的默认值

Init: 读取或者初始化控件属性,注册一些aspx页面中没有指出的控件的事件

InitComplete:初始化工作完成后可以使用此事件

 

PreLoad  / Load / Load Complete-加载

PreLoad:加载页面的ViewState和所有的控件,处理Request实例中的postback数据。

Load:设置控件属性的值(Page对象会递归的调用子控件的onload事件直到页面和所有的子控件被加载完成)

Validation:如果控件要求验证,验证会在这个阶段发生

Control events: 处理控件的事件

LoadComplete:页面所有的控件都被加载以后执行

 

PreRender / RenderComplete-呈现

PreRender:将要输出的HTML结果进行最后一次修改。

Render: 把HTML写回客户端浏览器。

 

Unload- 卸载

UnLoad:在控件中,使用这个事件来做清理工作

 

 



小结


了解整个页面生命周期可以让我们更好的控制好页面

同时可以帮助我们在程序出现问题时对问题更好的定位以及解决问题

你可能感兴趣的:(Web Page的生命周期)