以客户端浏览器向 ASP.NET Web 应用程序页面发送请求(Request)为起点,以浏览器收到 Web 服务器的响应(Response)为终点,这一完整的过程被称为“应用程序及页面的生命周期”。

ASP.NET Web 页面生命周期开始之前发生了什么?

  1. 用户浏览器向 Web 服务器(IIS)发出资源的请求。
  2. Web 服务器收到请求,会根据请求文件的扩展名(如 .aspx、.ascx、.ashx、.asmx),指定 ISAPI 扩展来处理该请求,这里提到的扩展名将会由 aspnet_isapi.dll 来处理。
  3. ASP.NET 接收到应用程序中任何资源的“第一个”请求时,ApplicationManager 类会创建一个应用程序域,应用程序域将为全局变量提供隔离。
  4. 在应用程序域中,HostingEnvironment 类将创建一个实例,提供有关应用程序的信息(如该应用程序的文件夹所在、名称等)的访问。
  5. 在这之后,ASP.NET 将创建并初始化核心对象(HtppContextHttpRequestHttpResponse)。HttpContext 类包含当前请求的特定对象(HttpRequest 和 HttpResponse);HttpRequest 包含当前请求的信息(如 URL,Cookie,浏览器信息);HttpResponse 包含将要发送到客户端的响应(html,Cookie)。
  6. 初始化核心对象之后,ASP.NET 创建 HttpApplication 的实例启动应用程序,创建 Global.asax 类(如果应用程序有这个文件的话)。HttpApplication 实例在第一次请求时被创建,之后的多个请求将共用此实例(提高了应用程序的性能)

       

ASP.NET 管线处理请求流程(包含 aspx 页面生命周期)

请注意,各种事件(Event)发生的顺序和所处管道,牢记哪些是在 Modeule 中执行的,哪些又是在 Handler 中执行的。

aspx 页面的生命周期

明白了页面生命周期,及其中事件发生的顺序,以及事件发生时控件的状态,就能找到合适的接入点来植入你的程序逻辑。换言之,把逻辑处理放在 PageLoad事件中执行并不一定是最优选择。

ASP.NET Web 应用程序及页面生命周期的更多相关文章

  1. 【译】ASP.NET应用程序和页面生命周期

    为何翻译此文 一.此文是Code Project社区2010年4月ASP.NET板块的最佳文章,说明了此文的份量: 二.锻炼自己的英文技术文章翻译能力,提高英文技术文档阅读能力: 三.了解掌握ASP. ...

  2. 微信小程序:页面生命周期

    小程序生命周期分为应用生命周期和页面生命周期 1.Onload:页面加载时触发,一般在onLoad中发送异步请求来初始化页面数据. 2.onShow:页面显示时触发 3.onReady:页面初次渲染完 ...

  3. 【转载】ASP.NET应用程序与页面生命周期

    在本文中,我们将了解不同的事件,ASP.NET 应用程序的生命周期以浏览器向 Web 服务器(对于 ASP.NET 应用程序,通常为 IIS)发送请求为起点,直至将请求结果返回至浏览器结束.在这个过程 ...

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

    http://www.cnblogs.com/suizhouqiwei/archive/2012/08/15/2637775.html

  5. [转]ASP.NET应用程序生命周期趣谈(四) HttpHandler和页面生命周期

    在之前的三篇文章中,我们还算简明扼要的学习了asp.net的整个生命周期,我们知道了一个Request进来以后先去ISAPI Filter,发现是asp.net程序后又ASPNET_ISAPI.dll ...

  6. ASP.NET页面生命周期和asp.net应用程序生命周期

    作为一个asp.net程序员,不了解ASP.NET页面生命周期和asp.net应用程序生命周期是绝对不行的,那永远只能是菜鸟级别.我很早就学过,可是没次还是得去翻,一些事件还是记不住,还是记在自己的b ...

  7. ASP.net 页面生命周期

    ASP.NET 页面生命周期 Page_Preinit(); 在页初始化开始时发生 Page_Init(); 在所有控件初始化且应用外观设置后引发 Page_InitComplete(); 在页初始化 ...

  8. ASP.Net请求处理机制初步探索之旅 - Part 4 WebForm页面生命周期

    开篇:上一篇我们了解了所谓的请求处理管道,在众多的事件中微软开放了19个重要的事件给我们,我们可以注入一些自定义的业务逻辑实现应用的个性化设计.本篇,我们来看看WebForm模式下的页面生命周期. ( ...

  9. ASP.NT运行原理和页面生命周期详解及其应用

    ASP.NT运行原理和页面生命周期详解及其应用 1. 下面是我画的一张关于asp.net运行原理和页面生命周期的一张详解图.如果你对具体不太了解,请参照博客园其他帖子.在这里我主要讲解它的实际应用.  ...

随机推荐

  1. sqlserver查看所有的外键约束

    select a.name as 约束名, object_name(b.parent_object_id) as 外键表, d.name as 外键列, object_name(b.reference ...

  2. JavaScript Module Pattern: In-Depth

    2010-03-12 JavaScript Module Pattern: In-Depth The module pattern is a common JavaScript coding patt ...

  3. valueForKeyPath常用用法

    valueForKeyPath和valueForKey有一些类似,但也有一些不同的地方.这里就简单说一下valueForKeyPath一些不同的地方. 举例来说: 1.valueForKeyPath可 ...

  4. Eclipse下.project和.classpath作用(转)

    classpath作用 定义项目的结构,如src.output.con.lib等. 源文件的具体位置(kind="src") 运行的系统环境(kind="con" ...

  5. Java Swing 第02记 标签和按钮

    JLable的常用构造器 Public JLabel() 创建无图像且其标题为空字符串的JLabel对象 Public JLabel(String text) 使用指定的字符串text(也就是标签显示 ...

  6. 解决 emulator-5554 disconnected! Cancelling

    在命令行状态下: adb kill-server ---再adb start-server:

  7. ECLIPSE/JAVAWEB (二)三大框架之Hibernate框架 持续更新中...

    (一)发展历史 在Struts框架中使用jdbc连接来读写数据库,我们最常见的就是打开数据库连接.使用复杂的sql语句进行读写.关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常繁琐的过程. ...

  8. 用GO扫描图片像素,复制图片

    关键是使用image.image/png.image/color包 // main.go package main import ( "fmt" "bufio" ...

  9. DBN 入门学习资料整理

    建议按序阅读 1.Deep Learning 概述 Deep Learning(深度学习)学习笔记整理系列 : http://blog.csdn.net/zouxy09/article/details ...

  10. http学习 1-3 chapter3-报文

    如果说HTTP是因特网的信使,那么HTTP报文就是它用来搬东西的包裹了. 报文是如何流动的. HTTP报文的三个组成部分(起始行.首部和实体的主体部分) 请求和响应报文之间的区别 请求报文支持的各种功 ...