页面的生命周期


1 页面的生命周期的九个阶段
1页面初始化:页面被调用来初始化所有传入页面请求的生命周期所需的设置Init()
2加载视图状态:恢复以前页面保存的状态,即ViewState属性,通过重写LoadViewState方法实现
3加载回送数据:页面加载所有在Request中缓存的传入的<form>数据,相应的更新页面和控件属性.(没有相关联的事件)
4加载用户代码:对应Load事件
5发送回传改变通知:根据当前回传和前一次回传之间的状态改变进行事件改变
6处理回送事件:执行与导致回传的客户端事件相关联的.aspx代码.类似于OnClick事件.
7预呈现:在输出被呈现前执行任务更新处理.对应OnPreRender事件
8页面呈现:创建呈现在客户端的HTML页面.通过重写Render方法实现
9页面卸载:在释放Page对象前执行任何最后的清理工作(如关闭文件和数据库连接)通过重写OnUnload方法.

2 页面的视图状态

      当页面被请求来时,他所包含的类和服务器控件负责执行请求,然后将HTML返回到客户端.由于HTTP协议的原因,客户与服务器之前的通信是无状态,无连接的.然而现实世界中的应用程序需要在对同一页面的连续请求中保持一些状态.这时ASP.NET提供一种内建的机制,以一种透明的方式保存和恢复页面的状态.通过这种方式.尽管底层协议是无状态的,客户端仍是一个连续的处理过程.当然这是一种假象.
      这种具有连续性的假象是由ASP.NET页面的视图-状态特性造成的.是在页面的设计和工作方式基础上的一种假设.简而言之,在将内容呈现到HTML之前,页面将其本身以及需要保存的组成页面的控件的所有状态信息进行编码,并保存到一个隐藏域中,当页面被回传时,状态信息被从隐藏域中反序列化,然后用于初始化在页面布局中声明的服务器的实例.
     视图状态与页面的实例相关,因为它嵌入到HTML中.这样,控件使用它们上一次在视图状态被创建时(即上一次页面被呈现给客户的值)的相同的值进行初始化.此外,页面生命周期中的一个步骤就是保存的状态与任何客户端行为导致的更新进行合并.当页面在回传后执行时,页面将发现它处于一个有状态的,已被更新的上下文中,就像在一个连续的点到点连接上工作一样.
  在此基础上进行一个假设:页面总是将状态传递给自己,并来回携带状态.
  页面的视图状态呈现为一个隐藏域,叫做_VIEWSTATE,并使用Base64编码的文本填充.

3 页面的回传事件

回传事件包含三个过程 1状态恢复 2处理服务器端事件  3呈现页面
状态恢复包含了两大部分:1加载视图状态,2加载回传数据.
回专事件的目标是执行服务器端代码来响应客户端输入.
执行完服务器端代码后, 页面开始其呈现状态,首先触发PreRender事件,然后将ViewState对象内容(即页面上活跃的各个控件的当前状态)序列化为一个Base64字符串.然后生成HTML代码,Base64字符串成为_ViewSTUTE隐藏域的值.此后开始下一次循环.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值