没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
全文可编辑 word 文档 页眉与背景水印可删除
1
详解 ASP.NET 页面生命周期
ASP.NET 页面运行时候,页面将经历一个生命周期,在
生命周期中将执行一系列的处理步骤。包括初始化、实例化
控件、还原和维护状态、运行时间处理程序代码以及进行呈
现。熟悉页面生命周期非常重要,这样我们才能在生命周期
的合适阶段编写代码。如果我们能在写代码的时候想着我们
现在是在做生命周期的哪一步那将是非常好的。
几个代表性的问题
在开始的时候我们先思考几个问题,看看我们在描述完
页面生命周期的时候,能不能回答上这几个问题
1.为什么在服务器端能通过 this.textbox1.Text 获取到
用户提交过来的数据?
2.在 Page_Load 中 Response.Write("hello")查看生成的
html 代码原文件,hello 在哪里?为什么?
3.有一个服务器端的按钮,设置了点击事件,该点击事件
什么时候执行?是先执行 Page_Load 事件还是先执行点击事
件?
4.为什么在服务器端通过 this.textbox1.Text 设置值后,
客户端就能显示出来?
全文可编辑 word 文档 页眉与背景水印可删除
2
了解 ASP.NET 请求管道、应用程序生命周期、整体运行
机 制 童 鞋 可 能 知 道 , ASP.NET 应 用 程 序 周 期 中
PreRequestHandlerExecute 事 件 与
PostRequestHandlerExecute 事件之间就是我们的页面生命
周期了,对于 aspx 页面就是一系列的打造页面控件树,触
发各种页面时间,对于一般处理程序 ashx 就是直接执行咱
们开发者写的 ProcessRequest 方法了,对于 MVC 应用程序
就是创建控制器工厂,创建控制器对象,调用 Action 那一
套了。
下面主要讲述的就是 ASP.NET WebForm 中的页面的生命
周期了。
我们用反编译工具查看 Page 类的 ProcessRequest 方法
可 以 看 见 先 调 用 了 FrameworkInitialize;
FrameworkInitialize 里面就是打造了页面控件树,然后调
全文可编辑 word 文档 页眉与背景水印可删除
3
用了 ProcessRequestMain,就开始了执行整个页面生命周期
了(其实就是调用了一系列的事件方法)(可能部分图看不
见右边,可在新标签页中打开图片)
1.打造页面控件树
FrameworkInitialize 内部调用了_buildControlTree
()方法
上图中左边是前台页面的代码,右边是对应 生成的打造
控件树的代码。中间截取的是生成表单那一部分的代码。
下面看一张原理图
浏览器的 DOM 树是根据 Html 标签生成一个 C 语言
的 DOM 树,而 ASP.NET 服务器端是用 C#打造的一个控件树,
也是按照 DOM 结构打造的。本质是一样。服务器端所有东西
都加到页面对象的控件集合中去了。标签在服务器端有对应
全文可编辑 word 文档 页眉与背景水印可删除
4
的控件对象的时候就用控件对象,没有的时候就使用
LiteralControl 进行封装。不管是服务器控件还是字符串标
签(没有 runat="server"的标签)都以控件对象的方式存在
前台页面类的控件集合里面。好处就是生成前台页面的 html
代码的时候,只需要遍历控件集合里面的每一个控件对象的
RenderControl 方法,每一个控件都会调用自己的 Render 方
法生成对应的 Html 字符串。那么所有控件的生成的 html 字
符串就还原成一个页面的 html 代码了。
2.触发 PerformPreInit 事件
在所有初始化之前初始化了这个事件,这个事件主要是
初始化了主题,初始化了母版页
private void PerformPreInit()
{
this.OnPreInit(EventArgs.Empty);
this.InitializeThemes();
this.ApplyMasterPage();
this._preInitWorkComplete = true;
全文可编辑 word 文档 页眉与背景水印可删除
5
}
3.触发 InitRecursive 事件
4.触发 LoadAllState()事件
加 载 页 面 状 态 解 析 ViewState , 将 页 面 表 单 中 的
ViewState 进行反 Base64 编码,反序列化,存在页面的
ViewState 属性中
5. 触 发
ProcessPostData(this._requestValueCollection, true)
剩余56页未读,继续阅读
资源评论
mmoo_python
- 粉丝: 0
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功