• ASP.NET Web 应用程序及页面生命周期


           以客户端浏览器向 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 实例在第一次请求时被创建,之后的多个请求将共用此实例(提高了应用程序的性能)

           QQ浏览器截屏未命名        201012162038237872

     

     

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

           2012081417481676

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

          

    aspx 页面的生命周期

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

           2012081517022892

  • 相关阅读:
    谈谈你对MVC和三层架构的理解?(月薪三万的面试题)
    logic:iterate 遍历
    db2, oracle和sqlserver取前几行的语法
    数据库常用操作语句
    css中em与px的介绍及换算方法
    禁止浏览器缓存
    JavaScript学习笔记(一)
    CSS控制表格隔行变色与鼠标滑过变色
    程序员——好好规划自己的路
    css规范
  • 原文地址:https://www.cnblogs.com/SkySoot/p/6103311.html
Copyright © 2020-2023  润新知