知识大全 Asp.Net页面生命周期

Posted

篇首语:习惯形成性格,性格决定命运。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Asp.Net页面生命周期相关的知识,希望对你有一定的参考价值。

Asp.Net页面生命周期  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  我们都知道 浏览器的作用就是将用户请求的内容封装成HTTP报文的形式 然后通过Socekt套接字和域名解析服务器(DNS)将域名转成ip地址发送到服务器

  服务器端的Windows操作系统分为两个部分 IIS运行在用户模式下 而监听 端口的那部分是运行在内核模式HTTP SYS(内核模块也是一个插件机制 socket通信机制在内核模块中 内核模块也是一种通信机制)下的 属于HTTP处理的内核模块 内核模式可以监听当前机器所有的Http请求 并将当前请求进行简单解析 确定协议的类型请求的端口 访问注册表 确定当前的请求需要交给IIS进行处理

  IIS接收到请求之后 访问INetInfo exe(IIS主进程中的元数据信息) 判断文件的类型并查询当前的请求需要经过那个扩展程序处理 如果是静态文件( js jpeg git) 直接将文件从服务器读取出来按照原路返回 如果是动态文件(ashx aspx) 则交给扩展程序aspnet_isapi dll文件执行 aspnet_isapi dll是一个扩展程序 实现了IIS内部的一些API 也是一种请求过滤的插件 它的作用是 负责启动托管环境 初始化托管环境 将请求分发给托管环境 也就是说 它负责启动aspnet  Runtime创建aspnet运行环境 将请求交给ISAPIRuntime的PR方法

  ISAPIRuntime是进入NET托管环境的入口 它在方法中通过一个ecb句柄指向了当前请求报文体的内存地址 将HTTP请求报文简单封装为一个HttpWorkRequest对象

  调用HttpRuntime PR(wr:(HttpWorkRequest对象))根据 HttpWorkRequest对象封装成一个HttpContext上下文对象 它包含了所有的请求信息 然后交给HttpApplicationFactory进行处理

  根据HttpApplication获得一个HttpApplication对象的实例 获取实例的时候 先去Application池中去找是否有空闲的HttpApplication对象 如果有则直接返回一个对象 不存在的话就就先编译globle文件生成一个HttpApplication的派生类 通过反射创建一个HttpApplication实例并返回 并开始处理用户的请求

  用户的请求是通过触发HttpApplication的 个事件 个步骤进行处理的 如果是一般处理程序( ashx) 那么执行完管道中的事件后按照原路进行返回 如果是aspx页面那么就开始走页面的生命周期了

  页面生命周期的主要步骤如下

   创建页面控制树 那么如何创建页面树的结构呢?把它封装成了一个方法 这个方法的名字就叫做FrameworkInitliaze() 在方法内部给aspx上所有的控件都New一个实例 然后构造一个树的结构即是有一个树的结构 只有执行创建页面之后 页面上才会有控件

   判断IspostBack 确定是否回发

   初始化

  初始化包括三个阶段

   )PreInint()预初始化

  A 调用OnPreinit方法引发PreInit事件

  B 利用App_Themes目录中的内容进行初始化主题 以动态实现一个PageThem

  属性值 并创建一个编译类的实例

  C 应用模板页

   )开始初始化 将所创建的控件树上的控件都new一个实例并赋默认值

  A 递归初始化Controls集合中的控件 初始化包括设置这些控件的属性

  B 递归应用控件皮肤

  C 调用OnInit方法以引发自身的Init事件 接着递归调用子控件的OnInit方法来

  引发他们的Init事件

  D 调用自身的TrackViewState方法重启自身的视图状态跟踪 接着递归调用子控

  件的TrackViewState方法重启自身的视图状态跟踪

   )InitComplete()初始化完成

   加载ViewState处理回发数据

  加载页面状态 解析隐藏域中的ViewState ViewState保持的值赋值到对应

  控件中 把需要触发事件的控件放到一个集合当中去

   预加载(PreLoad)

  页面调用OnPreLoad方法以引发PreLoad事件 该事件表示页面生命周期进

  入加载阶段 对应sapx cs中的Page_Load事件

   加载(Load)

  页面首先调用自身的OnLoad方法以引发自身的Load事件 接着递归调用

  Contorls集合中控件的OnLoad方法以引发它们的Load事件

   ProcessPostData第二次处理回发数据

   触发改变的事件和点击事件

   页面加载完成

   预渲染 对空间树进行最后一次处理

   保存当前页面的状态

   页面渲染

  页面生命周期结束后 形成了页面 继续执行管道之后的事件 执行完毕后按照原路返回到客户端

cha138/Article/program/net/201311/16141

相关参考

知识大全 两个粒度看Asp.net生命周期

两个粒度看Asp.net生命周期  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于页面层开发无

知识大全 详解ASP.NET MVC的请求生命周期

详解ASP.NETMVC的请求生命周期  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文的目的

知识大全 分析ASP.NET服务器控件开发-控件生命周期

分析ASP.NET服务器控件开发-控件生命周期  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 详解ASP.NET MVC应用程序请求生命周期

详解ASP.NETMVC应用程序请求生命周期  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  当一

知识大全 ASP.NET 揭秘 ASP.NET页面的结构

ASP.NET揭秘ASP.NET页面的结构  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!TheSt

知识大全 Asp.Net中动态页面转静态页面

Asp.Net中动态页面转静态页面  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关于在AspN

知识大全 ASP.NET页面间数据传递

ASP.NET页面间数据传递  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!引言  Web页面是无状

知识大全 ASP.NET 页面对象模型

ASP.NET页面对象模型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  介绍    

知识大全 ASP.NET页面错误处理

ASP.NET页面错误处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &

知识大全 ASP.NET页面事件执行顺序

ASP.NET页面事件执行顺序  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  usingSyst