探索ASP.NET的生命周期

2017-05-19 22:27汤小波
商情 2017年12期
关键词:控件生命周期实例

汤小波

(重庆三峡职业学院)

【摘要】ASP.NET的生命周期在程序执行过程中具有重要意义,本文就应用程序的生命周期和web页面的生命周期进行了深入的分析和探索。

【关键字】生命周期 ASP.NET

ASP.NET的生命周期是一个比较复杂的问题,也是一个比较有深度的问题,它在ASP.NET开发中有着重要的作用,对于一个合格的ASP.NET程序员,它是必须要了解和掌握的,它包括ASP.NET应用程序的生命周期和ASP.NET页面生命周期,我们将从上述两个方面来进行深入探讨。

1.ASP.NET应用程序生命周期

在ASP.NET中,若要对ASP.NET应用程序进行初始化并使它处理请求,必须执行一些处理步骤,可以把ASP.NET应用程序生命周期分为5个阶段:

第一阶段:用户从WEB服务器请求应用程序资源。

应用程序的生命周期以浏览器向Web服务器发送请求为起点,当web服务器接收到请求时,会对所请求文件的扩展名时行检查,确定应由哪个ISAPI扩展处理该请求,然后将该请求传递给合适的ISAPI扩展。ASP.NET处理已映射到其上的文件扩展名。

第二阶段:ASP.NET接收对应用程序的第一个请求。

当ASP.NET接收到对应用程序中任何资源和第一个请求时,名为Application Manager的类会创建一个应用程序域,它为全局变量提供应用程序隔离,并允许单独卸载每个应用程序。

第三階段:为每个请求创建ASP.NET核心对象。

创建了应用程序域并对Hosting Environment对象进行实例化之后,ASP.NET将创建并初始化核心对象,如HttpContext、HttpRequest和HttpResponse。HttpRequest对象包含有关当前请求的信息,包括Cookie和浏览器信息,HttpResponse对象包含发送到客户端的响应。

第四阶段:将HttpApplication对象分配给请求。

初始化所有核心应用程序对象之后,将通过创建HttpApplication类的实例启动应用程序。如果应用程序具有Global.asax文件,则ASP.NET会创建Global.asax类的一个实例,并使用该派生类表示应用程序。

第五阶段:由HttpApplication管线处理请求。

在处理该请求进将由HttpApplication类执行相应事件。

2、ASP.NET页面生命周期

ASP.NET页面运行时,此页也将经历一个生命周期,在生命周期中将执行一系列处理步骤,这些步骤包括初始化、实例化控件、还原和维护状态、运行事件处理程序代码以及进行呈现等。

一般说来,一个ASP.NET页面要经历如下各个阶段。

其一、浏览器发出请求

浏览器提出请求发生在页面生命周期之前。浏览器请求页面时,ASP.NET将确定是否需要分析和编译页,从而开始ASP.NET的生命周期。

其二、页面框架初始化

ASP.NET在这个阶段开始创建页面,它产生在页面中用标签定义的所有控件。Page.Init事件在这个阶段将被触发。

其三、用户代码初始化

Page.Load事件在这个处理阶段被触发,不管是第一次请求还是作为回发的一部分被请求,Page.Load事件总会触发。通过属性IsPostBack来决定是否是第一次加载。

其四、验证阶段

在验证期间,将调用所有验证程序控件的Validate方法,从而进行数据验证。

其五、事件处理阶段

在这阶段,页面被完全装载且通过验证。ASP.NET将触发在上次回发后发生的所有事件,包括立即反映事件和变化事件。

其六、清除阶段

在页面生命周期的最后阶段,页面呈现为HTML。页面呈现后,真正的清除开始并触发Page.UnLoad事件。

通过如下所示图例可以有效的理解页面生命周期。

3、演示ASP.NET页面生命周期

为了能加深对页面生命周期的理解,下面通过一个模拟示例来演示ASP.NET页面生命周期。

在项目中新建一页面PageLoad.aspx,其代码如下:

<%@ Page Language="C#" %>

(上接131页)

当页面第一次加载时,结果如图2所示,当点击确定按钮时,结果如图3所示。

正确理解ASP.NET生命周期和页面生命周期对于理解ASP.NET程序和执行具有很重要的意义,它能解释很多让人无法解释的问题:

其一、内置对象如Respons、Request等对象在什么时候创建,怎样创建,怎样应用就有很好的指导意义;

其二、能正确理解Global.asax文件的类的对象创建和事件的执行过程;

其三、ASP.NET页面从页面对象生成到消亡的过程;

其四、能更好地理解页面的环回机制,页面的多次回发的执行过程;

其五、能深入理解Page对象的IsPostBack属性在页面加载过程中的重要作用;

其六、能解释Web页面为什么是无状态的,页面信息为什么在多次回发过程中信息无法保留。

总之,ASP.NET应用程序及页面的生命周期它是web应用程序运行过程中的基石,理解它的产生过程就是理解了web程序的执行过程,对于分析和调试程序具有现实意义。

猜你喜欢
控件生命周期实例
基于云制造模式的产品碳足迹生命周期评价
使用“填表单”微信小程序 统计信息很方便
基于.net的用户定义验证控件的应用分析
基于生命周期理论的科技型小微企业融资路径选择探析
税收筹划在企业经营管理中的应用探讨
生命周期视角下大学生创业能力提升策略
完形填空Ⅱ
完形填空Ⅰ
利用VF6.0的Timer控件实现动画效果
Spreadsheet控件在Delphi数据库系统中的编程与应用