`

Asp.Net--->Page生命周期详解

阅读更多

 

  以下内容:参考MSDN和asp.net3.5网络开发详解样章:

  http://www.cnblogs.com/aspnet008/archive/2008/05/21/1203909.html

 

 

 

     (1)请求页面:页请求发生在页生命周期开始之前。

2)开始:在开始阶段,将设置页属性,如RequestResponse。在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性。

3)初始化页面:页面初始化期间,可以使用页中的控件,并将设置每个控件的UniqueID属性。如果当前请求是回发请求,则回发数据尚未加载,并且控件属性值尚未还原为视图状态中的值。

4)加载页面:加载期间,如果当前请求是回发请求,则将使用从视图状态和控件状态恢复的信息加载控件属性。

5)验证:在验证期间,将调用所有验证程序控件的Validate方法,此方法将设置各个验证程序控件和页的IsValid属性。

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

7)呈现页面:在页面呈现期间,视图状态将被保存到页面,然后页面将调用每个控件,以将其呈现的输出提供给页的Response属性的OutputStream

8)卸载页面:完全呈现页、将页发送至客户端并准备丢弃时,将调用卸载。此时,将卸载页属性(如ResponseRequest)并执行清理。

与上面的生命周期相对应的Page类的生命周期事件如图所示。

 

 

 

Page类生命周期中各个事件的说明如表所示。

 

Page类生命周期中各个事件的说明如表所示。

   

   

Init

当服务器控件初始化时发生;初始化是控件生存期的第一步

InitComplete

在页初始化完成时发生

PreInit

在页初始化开始时发生

Load

当服务器控件加载到Page对象中时发生

LoadComplete

在页生命周期的加载阶段结束时发生

PreLoad

在页Load事件之前发生

PreRender

在页面加载控件对象之后、呈现之前发生

PreRenderComplete

在呈现页内容之前发生

UnLoad

当服务器控件从内存中卸载时发生

Disposed

当从内存释放服务器控件时发生,这是服务器控件生存期的最后阶段

 

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class _Default : System.Web.UI.Page
{
    protected int i = 1;

    protected void Page_PreInit(object sender, EventArgs e)
    {
        Response.Write(i + ".PreInit:当页面初始化开始时发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_Init(object sender, EventArgs e)
    {
        Response.Write(i + ".Init:当服务器空间初始化时发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_InitComplete(object sender, EventArgs e)
    {
        Response.Write(i + ".InitComplete:当页初始化完成时发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_PreLoad(object sender, EventArgs e)
    {
        Response.Write(i + ".PreLoad:当页load事件前发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write(i + ".Load:当服务器控件加载到Page对象中时发生(加载页面时)");
        i++;
        Response.Write("<br>");
     
      //在Load和LoadComplete之间会执行控件事件.
      //如 Button 控件的 Click 事件或 TextBox 控件的 TextChanged 事件。
    }

    protected void Page_LoadComplete(object sender, EventArgs e)
    {
        Response.Write(i + ".LoadComplete:当页面生命周期的加载阶段结束时发生");
        i++;
        Response.Write("<br>");
    }

    protected void Page_PreRender(object sender, EventArgs e)
    {
        Response.Write(i + ".PreRender:当页加载控件之后,呈现之前发生,使用该事件对页或其控件的内容进行最后更改(预呈现)");
        i++;
        Response.Write("<br>");
    }


    protected void Page_PreRenderComplete(object sender, EventArgs e)
    {
        Response.Write(i + ".PreRenderComplete:呈现内容前发生.(预呈现完成)");
        i++;
        Response.Write("<br>");
    }




    protected void Page_SaveStateComplete(object sender, EventArgs e)
    {
        /*网页上控件的状态信息是在 PreRenderComplete 事件后保存的。
       在SaveStateComplete事件之前用Trace查看页时其实在该事件前还有
       一个SaveState事件,只是这里无法演示.
       
       注意:SaveStateComplete 事件在将页和页上控件的视图状态和控件状态保存到持久性介质之后引发。
       这是在页被呈现到请求浏览器之前引发的最后一个事件。*/

        Response.Write(i + ".SaveStateComplete:在页已完成对页和页上控件的所有视图状态和控件状态信息的保存后发生.");
        i++;
        Response.Write("<br>");




        /*最后一部操作
        呈现:Render:
        它不是事件;在处理的这个阶段,Page 对象会在每个控件上调用此方法Render()。
        所有 ASP.NET Web 服务器控件都有一个用于写出发送给浏览器的控件标记的 Render 方法。*/


        /*当你关闭页面的时候就会引发UnLoad(当服务器控件从内存中卸载时发生)
         和Disposed两事件(当从内存释放服务器控件时发生,这是服务器控件生存期的最后阶段)
        
        首先加载UnLoad事件:卸载页面:完全呈现页、将页发送至客户端并准备丢弃时,
        将调用卸载。此时,将卸载页属性(如Response和Request)并执行清理.
         
        最后加载Disposed事件,释放资源,生命周期结束.... 
        */
    }

}

 

 

结果:

 

 

Trace图:

 

  • 大小: 31.8 KB
  • 大小: 47.2 KB
  • 大小: 61.5 KB
  • 大小: 58 KB
  • 大小: 219.8 KB
分享到:
评论

相关推荐

    ASP.NET-[博客空间]锡远博客系统.zip

    在ASP.NET Web Forms中,每个页面都有一个生命周期,包括初始化、加载、回发、保存视图状态和卸载等阶段。理解这个生命周期对于调试和优化性能至关重要。 7. **部署与IIS** ASP.NET应用程序通常部署在IIS...

    ASP.NET-[学校班级]铭成在线考试网源码.zip

    1. **页面生命周期**:在ASP.NET中,每个用户请求都会经历一系列的事件,构成了页面生命周期。开发者可以通过这些事件来处理用户交互,如Page_Load、PreRender等,以便在适当的时间执行相应的逻辑。 2. **控件与...

    ASP.NET-AJAX总结.txt

    ### ASP.NET与AJAX知识点详解 #### 一、ASP.NET简介及特点 ##### 1.1 ASP.NET定义 - **定义**: ASP.NET是基于Microsoft .Net框架的一种服务器端技术,它利用公共语言运行时(Common Language Runtime, CLR)来...

    ASP.NET-[学校班级]计算机实验课在线答疑系统(毕业论文).zip

    1. **ASP.NET架构**:ASP.NET采用事件驱动模型,支持页面生命周期管理,使得开发者可以轻松地处理用户交互。它的核心组件包括Page、Control、Session、Application等,这些组件协同工作,为Web应用提供动态内容生成...

    ASP.NET-[企业政府]冬冬全动态企业网站2.0.zip

    这些元素通过ASP.NET的Page生命周期进行交互,实现页面的动态生成。当用户请求页面时,服务器执行页面上的服务器端代码,生成HTML响应,并发送回客户端浏览器。 【动态网站设计】 冬冬全动态企业网站2.0展示了如何...

    ASP.NET Page生命周期详解

    (1)请求页面:页请求发生在页生命周期开始之前。 (2)开始:在开始阶段,将设置页属性,如Request和Response。在此阶段,页还将确定请求是回发请求还是新请求,并设置IsPostBack属性。 (3)初始化页面:页面初始...

    ASP.NET页面周期详解

    在这个过程中,一个ASP.NET页面从用户的请求开始,经过一系列的生命周期阶段,直到最终响应被发送回客户端。让我们详细探讨一下这个过程。 首先,ASP.NET页面的类结构是基于继承的。`Page`类是从`TemplateControl`...

    asp.net中的母板详解

    2. **页面生命周期**:母版页和内容页的生命周期是交织的,母版页的初始化事件先于内容页,而其他事件(如加载、预呈现、呈现等)则按照页面模型顺序执行。 3. **数据绑定**:母版页和内容页可以独立进行数据绑定,...

    asp.net页面生命周期

    ### ASP.NET页面生命周期详解 #### 一、引言 ASP.NET是Microsoft提供的一个强大的Web开发框架,它使得开发者能够高效地构建动态Web应用程序。在深入理解ASP.NET开发的过程中,掌握页面生命周期是至关重要的一步。...

    【ASP.NET编程知识】详解ASP.NET页面生命周期.docx

    ASP.NET页面生命周期是ASP.NET Web Forms开发中的核心概念,它描述了一个ASP.NET页面从请求开始到响应返回给客户端的整个过程。在这个过程中,页面会经历一系列的阶段,每个阶段都有其特定的任务和目的,允许开发者...

    详解ASP.NET页面生命周期

    在深入了解***页面生命周期之前,首先要明白页面生命周期是指*** Web Forms页面从被请求到被发送到客户端浏览器这一过程所经历的一系列阶段。这个生命周期包括了初始化、创建控件树、处理用户输入、执行事件处理程序...

    asp.net论坛源码

    1. **页面生命周期与事件处理**:ASP.NET页面在请求过程中会经历一系列生命周期,包括初始化、加载、验证、呈现等阶段。每个阶段都对应着相应的事件,如Page_Load、Button_Click等,源码中的事件处理函数就是在这...

    ASP.NET项目开发案例全程实录(第2版)源码

    7. **页面生命周期**:了解ASP.NET页面从加载到呈现的完整生命周期,以及如何在不同阶段(如Page_Load、Click事件等)执行代码。 8. **状态管理**:包括ViewState、Session、Cookie和Querystring等,源码会演示如何...

    asp.net上海面试题目(经典)

    - 了解Page对象的各个事件,如Init、Load、PreRender等,以及它们在页面生命周期中的顺序。 - 控件生命周期,特别是数据绑定控件如GridView、Repeater的初始化和数据绑定过程。 3. HTTP处理: - ASP.NET如何处理...

    《ASP.NET开发实战详解:入门、模块、系统》程序代码1

    在ASP.NET中,页面从加载到呈现经历了一系列的生命周期阶段,开发者可以在此过程中捕获和处理事件,如Page_Load、Button_Click等,以实现业务逻辑。 2. "5":可能涉及ASP.NET控件的使用,如GridView、Repeater或...

    asp.net页面编译流程

    ASP.NET 页面生命周期由多个阶段组成,包括初始化(Initialization)、加载视图状态(Load View State)、事件处理(Event Handling)、渲染(Rendering)等。其中,编译流程发生在初始化阶段之前,是整个生命周期的...

    asp.net 开发大全 资料4

    ### ASP.NET开发大全资料之网页代码模型及生命周期详解 #### 4.1 ASP.NET的网页代码模型 在深入了解ASP.NET应用程序开发之前,首先要掌握的是网页代码模型这一核心概念。这不仅是构建高效、可维护的应用程序的基础...

    ASP.net开发文档

    - **理解ASP.NET网页的生命周期**:掌握ASP.NET网页从创建到销毁的各个阶段。 - **使用ASP.NET内嵌代码**:学会在网页中嵌入代码片段的方法。 - **理解代码隐藏页**:理解代码隐藏页的作用以及如何使用它来分离...

    ASP.NET项目开发案例全程实录(第2版)

    本章节详细介绍了ASP.NET项目开发的基本概念和技术要点,包括网站与网页的创建、基于控件的设计方法、网页的生命周期及处理流程等关键知识点。这些内容为初学者提供了深入理解ASP.NET技术的基础,并为进一步学习打下...

    完全手册:ASP.NET2.0网络开发详解教程光盘

    首先,ASP.NET 2.0引入了许多改进,包括Page生命周期的优化,使得页面处理更加高效。开发者可以通过新的事件模型更好地控制页面行为,如Page_Init、Page_Load和Page_Unload等事件,这些事件在页面生命周期的不同阶段...

Global site tag (gtag.js) - Google Analytics