处理过回发事件之后,页面便为浏览器生成输出做好了准备。呈现阶段分为两部分:预呈现和标记生成。预呈现这个子阶段有两个事件表征,分别为:预处理和投递处理。

PreRender事件

通过处理该事件,页面和控件能够进行生成输出前的不论什么更改。页面会首先引发自己的PreRender事件。然后按递归方式引发全部的子控件。注意,这时的页面已确保其全部子控件都被创建。

对于组合控件来说。该阶段尤为重要。

PreRenderComplete事件

因为全部子控件的PreRender事件会以递归方式逐一被调用,因而页面设计者无法知道预呈现阶段是否已经完毕。为此,asp.net2.0版本号引入了一个仅仅针对页面的新事件。即PreRenderComplete事件。

SaveStateComplete事件

在每一个控件被呈现输出,为页面生成标记前的一段时间里。要将当前页面的状态存储在视图状态介质中。

值得一提的是,在该点之后对状态做的不论什么更改可能会被呈现,但不会被存储,且在下一次回发时无法获得恢复。页面状态存储是一个递归的过程,页面处理程序会遍历整个页面树,逐一调用每一个控件的SaveViewState方法。包含页面自身的。

SaveViewState是受保护的虚拟方法(能够重写),负责存储当期控件的ViewState字典内容。

还有还有一种状态类型。即所谓的“控件状态”,控件状态是一种私有的状态。不受应用程序控件支配。换句话说,控件的控件状态不可以像视图状态一样。以编程方式被禁用。控件状态在此时也会被存储。

他是还有一种状态状态存储机制,与视图状态类似,其数据也可以用于维护页间回发,但控件状态的目的是,维护控件的必要信息,以便使其正常工作。也就是说。具有状态行为的属性数据应保存在控件状态中,而用户界面属性数据(如控件的内容)应保存在视图状态中。

标记的生成

针对浏览器的标记生成。会分别由每一个子控件自己完毕,生成的标记会被存储到一个缓冲中。有几个重写方法会帮助开发人员分别标记生成的阶段进行控制--開始标签、主体和结束标签。

没有与该阶段相关联的用户事件。

Unload事件

呈现阶段之后会进行一次递归调用,引发每一个控件的Unload事件,最后是页面自身的。

Unload事件用于在页面对象被释放前。运行终于的清理工作。一般的操作作为文件和数据库链接的关闭。

注意,卸载通知会在页面或控件正要被卸载且尚未被释放前到大。对于实际的页面,重写Page类的Dispose方法。或仅仅处理页面的Disposed事件,是在它从内存中被释放前做清理工作的最后机会 。页面处理程序会调用Dispose方法,释放页面对象。在对Unload事件处理程序的递归调用完成之后,会被马上引发。

转载于:https://www.cnblogs.com/clnchanpin/p/6768627.html

asp.net页面生命周期之页面的终结阶段相关推荐

  1. 记不住ASP.NET页面生命周期的苦恼

    介绍 对于ASP.NET开发者,理解ASP.NET的页面生命周期是非常重要的.主要是为了搞明白在哪里放置特定的方法和在何时设置各种页面属性.但是记忆和理解页面生命周期里提供的事件处理方法(method ...

  2. NET 页面生命周期

    对于 ASP.NET 开发者,理解 ASP.NET 的页面生命周期是非常重要的.主要是为了搞明白在哪里放置特 定的方法和在何时设置各种页面属性.但是记忆和理解页面生命周期里提供的事件处理方法 (met ...

  3. 【Flutter】Flutter 页面生命周期 ( 初始化期 | createState | initState | 更新期 | build | 销毁期 | dispose)

    文章目录 一.Flutter 页面生命周期 1.StatelessWidget 组件生命周期函数 2.StatefulWidget 组件生命周期函数 二.StatefulWidget 组件生命周期 1 ...

  4. AspNet2.0页面生命周期

    AspNet2.0页面生命周期 页面框架通过如下过程处理aspx文件请求:     1:解析aspx文件,并创建一个控件树:     2:使用控件树动态实现一个继承自Page类的类或者控件 :     ...

  5. AspNet2.0页面生命周期的各个事件细节

    页面框架通过如下过程处理aspx文件请求:     1:解析aspx文件,并创建一个控件树:     2:使用控件树动态实现一个继承自Page类的类或者控件 :     3:动态编译类:     4: ...

  6. [转]ASP.NET页面生命周期描述

    ASP.NET页面生命周期描述 vigorID:Vigorcsdn 在以前写个一篇关于ASP.NET页面生命周期的草稿,最近又看了看ASP.NET,做个补充,看看页面初始过程到底是怎么样的 下面是AS ...

  7. WebForm页面生命周期及asp.net运行机制

    转载至:https://www.cnblogs.com/liangxiaofeng/p/5620033.html 1.先上几张原理图着重理解: 现在针对第四副图原理进行解析: 流程: 1.浏览器发送请 ...

  8. ASP.NET页面生命周期描述

    附一篇文章:http://blog.csdn.net/Vigorcsdn/article/details/572552 在以前写个一篇关于ASP.NET页面生命周期的草稿,最近又看了看ASP.NET, ...

  9. Asp.Net页面生命周期(多图)

    抽空用viso画了请求处理模型图 1.浏览器实际上是一个Socket客户端,它向服务器发送请求报文 2.请求报文被封装为http请求,通过socket发送到IIS服务器 3.内核模式包含一个Http. ...

  10. ASP.NET页面生命周期与应用程序生命周期

    页面生命周期 页面生命周期执行一系列步骤:页面的初始化.实例化控件.还原和维护状态.运行事件处理程序代码.呈现.为了在合适的阶段执行所需的代码,所以要对页面生命周期非常熟悉.在页生命周期的各个阶段,页 ...

最新文章

  1. gif 图片制作和拆解
  2. 清理系统垃圾文件的常用脚本
  3. goland 远程调试 golang
  4. Jupyter Notebook 使用小记
  5. 使用Python控制1602液晶屏实时显示时间(附PyCharm远程调试)
  6. java排列组合算法优缺点,一招彻底弄懂!
  7. jquery ajax 跨域解决方案 - CORS
  8. mysql驱动rpm和jar_mysql5.7.11对应的JDBC驱动是哪个版本
  9. 天地图怎么看历史图像_解密:看猪八戒是怎么由一头猪变成天蓬元帅的
  10. R40 gpio 寄存器地址操作【原创】
  11. mysql中外键总结_mysql外键的一些总结
  12. 高三!忏悔ing~(在这儿的第一篇随笔)
  13. 51nod 平均数(二分+树状数组)
  14. MacOS Monterey 12.2 (21D49) OC 0.7.8 / Cl 5143 / PE 三分区原版黑苹果镜像
  15. 技术团队管理经验总结(持续更新)
  16. 泰拉瑞亚服务器config修改,泰拉瑞亚配置修改方法详解 泰拉瑞亚怎么修改游戏配置 Config文件-游侠网...
  17. 如何在Word,excel 中打钩和打叉?
  18. 程序员代码面试指南第二版 4.猫狗队列
  19. 百人计划 美术 1.1 美术理论基础
  20. 手机淘宝构架演化实践

热门文章

  1. mockito 外部接口_原创 |使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (五)第一个单元测试...
  2. 50预训练权重_MMDetection笔记:修改预训练模型权重类别数
  3. clob oracle 连接_32天 Oracle 导入导出.
  4. 加密能抓到吗?怎么抓_网络赌博被抓怎么处罚 网上参与赌博会坐牢吗
  5. h5点击按钮之后按钮消失_小程序webview跳转页面后没有返回按钮完美解决方案
  6. python怎么让图片旋转45度_是否有方法将matplotlib打印旋转45度?
  7. java--复制文件的方法:
  8. python下文件以及文件的常用操作-1
  9. proteus三输入与非门名字_商标取名大全-有创意的2020商标名字大全
  10. vscodemaven 配置_vscode配置maven的settings.json