zoukankan      html  css  js  c++  java
  • ASP.NET页面生命周期

    页面生命周期         

    1、  页请求:发生在页面生命周期之前,用户请求页时,ASP.NET将确定是否需要分析和编译页,从而确定是否开始页面的生命周期,或者是否可以在不运行页的情况下发送页面缓存以进行响应。

    2、  开始:设置页属性,如:HttpContext(为继承 IHttpModule 和 IHttpHandler 接口的类提供了对当前 HTTP 请求的 HttpContext 对象的引用。该对象提供对请求的内部 Request、Response 和 Server 属性的访问)以及其他属性;在此阶段,页面需要确定是回发请求还是新请求,并设置IsPostBack属性;设置页面的UICulture属性。

    3、  页面初始化:加载所有主题;控件生成,
    注:ViewState、ControlState中的值还未加载至控件;如果页面是回发,则回发数据也还未加载;故此时控件可以访问,但值可能出错。

    4、  加载:如果当前请求是回发请求,则为控件加载ViewState和ControlState中的值。

    5、  验证:调用所有验证程序控件的Validate方法,此方法将设置验证程序控件和页的IsValid属性。

    6、  回发事件处理:如果请求是回发请求,则调用所有事件处理程序。

    7、  呈现:首先对该页和所有控件进行保存视图状态,然后对每个控件调用Render方法,它会提供一个文本编写器,用于将控件的输入写入页的Response属性的OutputStream中。

    8、  卸载:完成呈现,并已将页发送至客户端、准备丢弃该页后,调用卸载。将卸载属性如:Response和Request等等。

    页生命周期事件:页面执行相应的操作,会触发相应页面事件。即:
    1、PreInit
    完成操作:检查IsPostBack属性来确定是不是第一次处理该页;
                         创建或重新创建动态控件
                         动态设置主控页
                         动态设置Theme属性
                         读取或设置配置文件属性
    注:如果请求是回发请求,则控件的值尚未从视图状态恢复,即:不应该在此事件中设置控件属性。

    2、Init
    完成操作:在所有控件都已经初始化并且应用所有外观设置后引发。使用该事件来读取和初始化控件属性。

    3、InitComplete
    完成操作:由Page对象引发,使用该事件来处理要求完成所有初始化工作的任务。

    4、PreLoad
    完成操作:为页和所有控件加载视图状态,然后处理Request 实例包括的任何回发数据。
    注:如果需要在Load之前对页或控件进行处理,需要该事件。

    5、Load
    完成操作:以递归方式加载所有控件。

    6、控件事件
    完成操作:处理控件引发的事件。

    注:在回发请求中,如果页包含验证程序控件,请在执行任何处理之前检查Page和各个验证控件的IsValid属性。

    7、LoadComplete

    8、PreRender
    在控件输出前最后的修改机会。
    注:在该事件发生前的操作:
    Page对所有控件递归进行EnsureChildControl操作
    设置了DataSourceID属性的数据绑定控件会调用DataBind方法。

    9、SaveStateComplete
    在该事件发生前,已经对控件的ViewState进行了保存。将忽略对页和控件所作的所有修改。

    10、Render
    方法,便于开发

    11、UnLoad

    总结:生命周期应该知道,相关事件仅做了解,具体参考  点击参考

    ps:2013 10 28

    页面生命周期:
    1、PreInit:设置master Page、设置主题、初始化控件
    2、Init:此事件发生在所有的控件被初始化以后,读取或者初始化控件的属性。
    3、InitComplete:初始化完成事件
    4、PreLoad:加载页面的ViewState和所有控件,然后处理包含在Request中的Postback数据。
    5、Load:此事件先递归调用控件的onload事件,直到所有的控件被加载完成。这个事件主要用来设置控件的属性的值。
    6、LoadComplete:加载完成事件。
    7、PreRender:在HTML被生成之前的最后一个事件,这个事件也是修改被返回的HTML的最后机会。
    8、Render:主要把HTML返回到客户端。
    9、UnLoad:清理页面,递归清理页面控件,例如关闭打开文件,关闭数据库连接等等。

  • 相关阅读:
    Matlab中tic和toc用法
    matlab 哪个函数可以从一组数据中随机抽取一部分出来
    matlab中rep函数的用法
    WinCE平台搭建数据库(wince6.0+vs2008+sqlce)熙熙
    熙熙如何在WinCE里上QQ(天嵌WinCE开发板,PocketPC仿真模拟器,QQ)
    数学建模方法灰色预测法
    数学建模方法层次分析法
    数学建模方法多属性决策模型
    数学建模方法Floyd算法
    数学建模方法Dijkstra算法
  • 原文地址:https://www.cnblogs.com/lei2007/p/2109790.html
Copyright © 2011-2022 走看看