zoukankan      html  css  js  c++  java
  • asp.net页面生命周期之页面的终结阶段

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

    PreRender事件

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

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

    PreRenderComplete事件

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

    SaveStateComplete事件

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

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

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

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

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

    标记的生成

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

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

    Unload事件

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

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

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

  • 相关阅读:
    页面中多个小图片元素合成一个大图片之后用CSS调用
    腾讯设计中心博客
    php 配置 curl , gd , openssl , mbstring
    Apache开启Rewrite环境
    防止入侵:My SQL各种攻击方法大全
    Css背景图合并工具功能增强
    php防CC攻击代码
    网站地址栏的图标代码
    PHP漏洞全解(一)PHP网页的安全性问题
    用PHP实现飞信api接口发飞信短信
  • 原文地址:https://www.cnblogs.com/clnchanpin/p/6768627.html
Copyright © 2011-2022 走看看