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

PreRender事件

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

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

PreRenderComplete事件

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

SaveStateComplete事件

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

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

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

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

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

标记的生成

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

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

Unload事件

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

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

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

asp.net页面生命周期之页面的终结阶段的更多相关文章

  1. asp.net页面生命周期

    Asp.Net页面生命周期 本文转载自:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html 一.什么是Asp.Net页面生命周期 当 ...

  2. ASP.NET编程模型之ASP.NET页面生命周期图解

    ASP.NET编程模型中ASP.NET页面生命周期是指什么呢?它包括什么呢?ASP.NET编程模型之ASP.NET页面生命周期具体的过程有哪些呢?下面就开始我们的讲解吧: ASP.NET 页运行时,此 ...

  3. .net学习笔记---IIS 处理模型及ASP.NET页面生命周期

    本文是基于IIS6的处理模型. 当一个客户端页面访问IIS试图获取一些信息的时候,发生了什么事情?一个请求在通过了HTTP管道后又发生了什么?本文主要是描述这两个过程,即IIS处理asp.net请求和 ...

  4. Asp.Net页面生命周期--转发(学海无涯)

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  5. Asp.Net页面生命周期【转载,地址:http://www.cnblogs.com/xhwy/archive/2012/05/20/2510178.html】

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  6. 【转载】Asp.Net页面生命周期

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  7. Asp.Net页面生命周期[转]

    一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,回车查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,  完全识别 HTTP 页 ...

  8. ASP.net 页面生命周期

    ASP.NET 页面生命周期 Page_Preinit(); 在页初始化开始时发生 Page_Init(); 在所有控件初始化且应用外观设置后引发 Page_InitComplete(); 在页初始化 ...

  9. [转]ASP.NET应用程序生命周期趣谈(四) HttpHandler和页面生命周期

    在之前的三篇文章中,我们还算简明扼要的学习了asp.net的整个生命周期,我们知道了一个Request进来以后先去ISAPI Filter,发现是asp.net程序后又ASPNET_ISAPI.dll ...

随机推荐

  1. tortoisegit安装、clon、推送

    下载/tortoisegit软件,根据对应系统下载相对应的软件及其汉化包   下载地址:https://tortoisegit.org/download/ 先安装软件包,再安装语言包,可以自己设置路径 ...

  2. JavaWeb中常见的乱码处理(亲测)

    常见编码方式: ISO-8859-1  西欧码 GB2312  简体中文码 GBK   大五码 UTF-8 全球码(推荐) 1.页面(HTML,JSP,Servlet) <%@ page lan ...

  3. 4425: [Nwerc2015]Assigning Workstations分配工作站

    4425: [Nwerc2015]Assigning Workstations分配工作站 Description Penelope is part of the admin team of the n ...

  4. Failed to Attach to Process ID Xcode 解决办法

    方法1. go to the Product menu and find the Edit Scheme menu there. While in Edit Scheme window, select ...

  5. PHP 5.3.13 memcache win 64 配置和安装

    --环境: windows 2008 R2 64位 wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-x64 --目标: 实现 php 用memcach ...

  6. SNAT的作用是什么

    SNAT,可能有人觉得奇怪,好好的为什么要进行ip地址转换啊,为了弄懂这个问题,我们要看一下局域网用户上公网的原理,假设内网主机A(192.168.2.8)要和外网主机B(61.132.62.131) ...

  7. Ubuntu 16.04安装OpenVPN客户端GUI

    说明:一般来说OpenVPN在Linux下都是基于命令行的,而Ubuntu可以通过安装扩展放在网络连接上实现GUI操作. 安装: sudo apt-get install openvpn sudo a ...

  8. how to solve "[WARNING] File encoding has not been set, using platform encoding Cp1252, i.e. build is platform dependent!"

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  9. Linux下启动和停止Java应用程序的Shell脚本

    转自:http://blog.csdn.net/jadyer/article/details/7960802 资料参考来源自兔大侠,并略作修改:http://www.tudaxia.com/archi ...

  10. Android内存优化2 了解java内存分配 2

    JVM内存模型 Java虚拟机(Java Virtual Machine=JVM)的内存空间分为五个部分,分别是: 1. 程序计数器 2. Java虚拟机栈 3. 本地方法栈 4. 堆 5. 方法区. ...