zoukankan      html  css  js  c++  java
  • asp.net常规页生命周期阶段列表和事件列表

    当我们使用asp.net开发网站,每运行一个页面,这个页面都将经历一个生命周期。了解页的生命周期非常重要,因为这样我们才能在合适的生命周期编写代码实现预期效果。网上有一句话概括非常精辟:"Do the right thing at the right time in the right place."。微软的文档给出的ASP.NET生命周期如下:
    1 Page Request  --页面请求
    2 Start  --开始
    3 Page Initialization --页初始化
    4 Load  --加载
    5 Validation --验证
    6 Postback event handling --回发事件处理
    7 Rendering --呈现
    8 Unload  --卸载
    一、生命周期阶段列表
    下面来看看每个阶段对应的具体说明:
    1、页请求
    页请求发生在页生命周期开始之前。用户请求页时,asp.net将确定是否需要分析和编译页,或者是否可以在不运行页的情况下,发送缓存版本以进行响应。
    2、开始
    在开始阶段,将设置页属性,如Request和Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置ispostback属性。此外,在开始阶段期间,将设置页的UICulture属性。
    3、页初始化
    该阶段,可以使用页中的控件,并将设置每个控件的UniqueID属性。此外,任何主题都将应用于页。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。
    4、加载
    该阶段,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。
    5、验证
    在验证期间,将调用所有验证控件的Validate方法,此方法将设置各个验证程序控件和页的IsValid属性。
    6、回发事件处理
    如果请求是回发事件,则将调用所有事件处理程序。
    7、呈现
    在呈现期间,视图状态将被保存到页,然后页将调用每个控件,以将其呈现的输出提供给页的Response属性的OutPutStream。
    8、卸载
    完全呈现页将页发送至客户端并准备丢弃时,将调用卸载。此时,将卸载页属性如Request,Response等,并进行清理。
    二、生命周期事件列表(常见)
    1、Page_PreInit
    典型应用:
      使用IsPostBack属性确定是否是第一次处理该页;
      创建或者重新创建动态控件;
      动态设置母版页;
      动态设置Theme属性;
      读取或者设置配置文件属性值。
    注意:如果请求是回发请求,则控件的值尚未从视图状态还原。如果在此阶段设置控件属性,则值可能会在下一阶段被改写。
    2、Page_Init
    典型应用:
      读取或初始化控件属性
    3、Page_Load
    典型应用:
      读取或更新控件属性
    4、Controlevents
    典型应用:
      执行特定于应用程序的处理:
            如果页包含验证程序控件,则在执行任何处理之前坚持页和各个验证控件的IsValid属性;
            处理特定事件,如Button的Click事件
    5、Page_PreRender
    典型应用:
      对页的内容进行最后更改
    6、Page_Unload
    典型应用:
      执行最后的清理工作,可能包括:
            关闭打开的文件和数据库连接;
            完成日志记录或其它特定于请求的任务。
      这个事件里要注意:因为在卸载阶段,页及其控件已被呈现,因此无法对响应流做进一步更改。如果尝试调用方法如Response.Write方法,则该页会引发异常。
    好了,最后来一个经典的代码实例来回顾一下前面讲的主要内容。Code is cheap。看代码了:
    Code


    作者:Jeff Wong
    出处:http://jeffwongishandsome.cnblogs.com/
    本文版权归作者和博客园共有,欢迎围观转载。转载时请您务必在文章明显位置给出原文链接,谢谢您的合作。

  • 相关阅读:
    How to create jar for Android Library Project
    Very large tabs in eclipse panes on Ubuntu
    64bit Ubuntu, Android AAPT, R.java
    Linux(Ubuntu)下如何安装JDK
    Configure xterm Fonts and Colors for Your Eyeball
    建立、配置和使用Activity——启动其他Activity并返回结果
    建立、配置和使用Activity——使用Bundle在Activity之间交换数据
    建立、配置和使用Activity——启动、关闭Activity
    建立、配置和使用Activity——Activity
    异步任务(AsyncTask)
  • 原文地址:https://www.cnblogs.com/jeffwongishandsome/p/1423970.html
Copyright © 2011-2022 走看看