ASP.NET页面生命周期

页 面生命周期执行一系列步骤:页面的初始化、实例化控件、还原和维护状态、运行事件处理程序代码、呈现。为了在合适的阶段执行所需的代码,所以要对页面生命 周期非常熟悉。在页生命周期的各个阶段,页面会逐个引发定义的事件,通过对代码开发,在页面的生命事件中执行我们所需要的程序
页生命周期阶段

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

2、  开始:设置页属性,如:HttpContext以及其他属性;在此阶段,页面需要确定是回发请求还是新请求,并设置IsPostBack属性;设置页面的UICulture属性。

3、  页面初始化:加载所有主题;控件生成,并设置UniqueID;
注: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

应用程序生命周期

在应用程序的生命周期期间,应用程序会引发可处理的事件并调用可重写的特定方法。若要处理应用程序事件或方法,可以在应用程序根目录中创建一个名为 Global.asax 的文件。如果创建了 Global.asax 文件,ASP.NET 会将其编译为从 HttpApplication 类派生的类,然后使用该派生类表示应用程序。

HttpApplication 进程的一个实例每次只处理一个请求。由于在访问应用程序类中的非静态成员时不需要将其锁定,这样可以简化应用程序的事件处理过程。这样还可以将特定于请求的数据存储在应用程序类的非静态成员中。例如,可以在 Global.asax 文件中定义一个属性,然后为该属性赋一个特定于请求的值。

Application_StartApplication_End 方法是不表示 HttpApplication 事件的特殊方法。在应用程序域的生命周期期间,ASP.NET 仅调用这些方法一次,而不是对每个 HttpApplication 实例都调用一次。

ASP.NET页面生命周期和asp.net应用程序生命周期相关推荐

  1. php和asp渲染页面,Vue.js与 ASP.NET Core 服务端渲染功能

    在前端使用 Vue.js,Vue 服务端渲染直到第二个版本才被支持. 在本例中,我想展示如何将 Vue.js 服务端渲染功能整合 ASP.NET Core. 我们在服务端使用了 Microsoft.A ...

  2. ASP.NET页面事件详解

    ASP.NET页面事件详解 ASP.NET页面事件详解 1.Page_Init()事件 当页面初始化时发生此事件.可以利用Page_Init()将该事件与要在.NET页面上显示控件之前的运行的代码建立 ...

  3. vue生命周期+微信小程序生命周期详解

    文章目录 1 vue生命周期 1 明确 2 小程序生命周期 1 应用生命周期 2 页面生命周期 页面之间跳转 3 组件生命周期 4 应用生命周期影响页面生命周期 5 总结 参考链接 1 vue生命周期 ...

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

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

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

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

  6. ASP.NET页面的生命周期

    当一个获取网页的请求(可能是通过用户提交完成的,也可能是通过超链接完成的)被发送到Web服务器后,这个页面就会接着运行从创建到处理完成的一系列事件. ASP.NET页面初始的过程: 1.Page_In ...

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

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

  8. 【转】Asp.net页面的生命周期

    介绍 Asp.net是微软.Net战略的一个组成部分.它相对以前的Asp有了很大的发展,引入了许多的新机制.本文就Asp.net页面的生命周期向大家做一个初步的介绍,以期能起到指导大家更好.更灵活地操 ...

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

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

  10. asp.net 页面全生命周期

    .Net 托管代码和非托管代码的区别 后台代码隐藏/显示前台控件 .Net 页面生命周期 2012-03-21 13:31:08|  分类: .NET |  标签:.net  页面生命周期  c#  ...

最新文章

  1. [AVR]使用AVR单片机驱动舵机
  2. axios在IE下的兼容性处理
  3. CREATE (/IWBEP/CL_MGW_EXPAND_TREE)
  4. java证明ArrayList是线程不安全的
  5. .NET开发框架(三)-高可用服务器端设计
  6. 九度 1474:矩阵幂(二分法)
  7. python一些方便excel行操作的函数(一)
  8. QT跨平台项目开发经验(项目打包)
  9. Java基本数据类型和String类型的转化
  10. 【代码源 Div1#103】子串的最大差 Codeforces - 817D,力扣2104,1900分
  11. 零基础入门机器学习——声音识别——打卡Task1
  12. 数学建模论文题目优选专业题目128个
  13. 百德科技专业定制软件开发
  14. E18-D80NK红外避障传感器使用说明
  15. html给页面添加艺术型边框,如何为2016word的页面设置艺术型页面边框
  16. 【nowcoder 224882】牛牛和数组操作(贪心)(剪枝)(区间DP)
  17. 遗留系统:IT攻城狮永远的痛
  18. 字节跳动头条2022测试开发岗 3+1 面经+经验分享(收到offer,入职月薪30K)
  19. linux 查询某字符串得行号和截图指定范围得文件
  20. vue按照字母表排序

热门文章

  1. php操作mysql数据_详解PHP操作MySQL数据库
  2. 语言输出奇树有多少总方法_新手如何快速学习一门编程语言?了解 TA,三周学好C语言...
  3. deque插入和删除操作
  4. qfile.remove 删除已经被加载的文件_Milvus数据管理:删除的实现原理
  5. python rarfile_Python中zipfile压缩文件模块的基本使用教程
  6. python基础:字符串操作
  7. vue-cli 最强指南
  8. Python零基础学习笔记(六)—— 变量和常量
  9. Outlook收件箱无法看到新邮件而OWA的收件箱可以
  10. esxi update patch