ASP.NET页的生命周期
简介
当一个页面请求被发送到WEB服务器,不论该事件是由页面提交还是由页面重定向而激发的,页面在其被创建到释放的过程中都会运行一系列的事件。当我们创建ASP.NET页的时候往往没有关注它的执行周期,从而让我们碰到很多让自己头疼的问题。但是,如果被正确的使用和操纵,页生命周期会成为一个高效且强大的工具。很多开发者都认识到,理解页面执行过程中发生了什么和什么时候发生对高效编写ASP.NET页和用户控件是十分关键的。那么,让我们来详细的了解一个ASP.NET页面从被创建到其被释放的过程中的十个事件。币擦私庠跹颜庑┦录擞玫轿颐堑淖远ㄒ宕胫小?lt;BR>我将把这个过程建立在一个用C#编写的ASP.NET简单提交页上。这个页面首次会加载一些服务器端WEB控件,当WEB服务器接收到它的请求时,WEB服务器就会处理我们的WEB控件并最终让我们得到该页的HTML呈现。处理页面的第一步是对象初始化
下载源码
演示
1.对象初始化
页面中的控件(包括页面本身)都是在它们最初的FORM中被首次初始化的。通过在ASPX页面的后台代码文件的构造器中声明你的对象,页面将知道对象的类型,并知道需要创建多少个这样的对象。一旦你在构造器中声明了你的控件,你就可以在它的任何子类,方法,事件或者属性中访问到它们。但是,如果你的任何对象是在ASPX文件中指定的控件,这样的控件是没有属性的。而且这样做对从代码中访问它们是危险的,因为无法保证这些控件实例是按照怎样的顺序被创建的(假定它们都是能完全被创建的)。初始化事件可以通过OnInit方法重载。
2.加载视图状态数据
初始化以后,控件仅能通过ID引用(还没有建立用于相对引用的文档对象模型)。 在LoadViewState事件中,已初始化的控件获得第一个属性:上一次提交存留到服务器的视图状态信息。页视图状态通过ASP.NET维护,它被用于在一个往返行程中存留信息到服务器。视图状态信息被保存为一个名称/值对,它包含控件的如Text和Value一类的信息。视图信息被保存在隐藏<input>控件的值属性中在页请求中传递。正如你所了解的,这是旧的ASP3.0状态维护技术的一个巨大飞跃。这个事件可以通过LoadViewState方法重载,往往用来在控件被填充时定制它所接受的数据。图2显示了一个在LoadViewState事件中设置视图状态的重载例子。
当一个页面请求被发送到WEB服务器,不论该事件是由页面提交还是由页面重定向而激发的,页面在其被创建到释放的过程中都会运行一系列的事件。当我们创建ASP.NET页的时候往往没有关注它的执行周期,从而让我们碰到很多让自己头疼的问题。但是,如果被正确的使用和操纵,页生命周期会成为一个高效且强大的工具。很多开发者都认识到,理解页面执行过程中发生了什么和什么时候发生对高效编写ASP.NET页和用户控件是十分关键的。那么,让我们来详细的了解一个ASP.NET页面从被创建到其被释放的过程中的十个事件。币擦私庠跹颜庑┦录擞玫轿颐堑淖远ㄒ宕胫小?lt;BR>我将把这个过程建立在一个用C#编写的ASP.NET简单提交页上。这个页面首次会加载一些服务器端WEB控件,当WEB服务器接收到它的请求时,WEB服务器就会处理我们的WEB控件并最终让我们得到该页的HTML呈现。处理页面的第一步是对象初始化
下载源码
演示
1.对象初始化
页面中的控件(包括页面本身)都是在它们最初的FORM中被首次初始化的。通过在ASPX页面的后台代码文件的构造器中声明你的对象,页面将知道对象的类型,并知道需要创建多少个这样的对象。一旦你在构造器中声明了你的控件,你就可以在它的任何子类,方法,事件或者属性中访问到它们。但是,如果你的任何对象是在ASPX文件中指定的控件,这样的控件是没有属性的。而且这样做对从代码中访问它们是危险的,因为无法保证这些控件实例是按照怎样的顺序被创建的(假定它们都是能完全被创建的)。初始化事件可以通过OnInit方法重载。
2.加载视图状态数据
初始化以后,控件仅能通过ID引用(还没有建立用于相对引用的文档对象模型)。 在LoadViewState事件中,已初始化的控件获得第一个属性:上一次提交存留到服务器的视图状态信息。页视图状态通过ASP.NET维护,它被用于在一个往返行程中存留信息到服务器。视图状态信息被保存为一个名称/值对,它包含控件的如Text和Value一类的信息。视图信息被保存在隐藏<input>控件的值属性中在页请求中传递。正如你所了解的,这是旧的ASP3.0状态维护技术的一个巨大飞跃。这个事件可以通过LoadViewState方法重载,往往用来在控件被填充时定制它所接受的数据。图2显示了一个在LoadViewState事件中设置视图状态的重载例子。
浙公网安备 33010602011771号