生命周期和状态保持.ppt

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
生命周期和状态保持课件

“ ” “ ” ASP.NET生命周期和状态保持 一.什么是Asp.Net页面生命周期 当我们在浏览器地址栏中输入网址,查看页面时,这时会向服务器端(IIS)发送一个request请求,服务器就会判断发送过来的请求页面,? 完全识别 HTTP 页面处理程序类后,ASP.NET 运行时将调用处理程序的 ProcessRequest 方法来处理请求,来创建页面对象。通常情况下,无需更改此方法的实现,因为它是由 Page 类提供的。接下来被创建页面对象的ProcessRequest方法使页面经历了各个阶段:初始化、加载视图状态信息和回发数据、加载页面的用户代码以及执行回发服务器端事件。之后,页面进入显示模式:收集更新的视图状态,生成 HTML 代码并随后将代码发送到输出控制台。最后,卸载页面,并认为请求处理完毕。其中页面对象ProcessRequest方法 完成的这一系列事件的处理过程就是Asp.Net页面生命周期。 主要步骤 ?页面初始化 ? ? ? ? ?Page_Init?? 加载View State??? LoadViewState???             回发数据处理 ? ? ? LoadPostData???             页面加载 ? ? ? ? ? ? Page_Load???            回发通知 ? ? ? ? ? ? RaisePostDataChangedEvent??            回发事件处理 ? ? ? RaisePostBackEvent??             页面预渲染 ? ? ? ? ? Page_PreRender???            保存 ? ? ? ? ? ? ? ? ? viewstate SaveViewState???            Page渲染 ? ? ? ? ? ? Page_Render???            Page 卸载 ? ? ? ? ? Page_UnLoad ? 主要步骤 1.创建页面控制树,把它封装成了一个方法,这个方法的名字就叫做FrameworkInitliaze()?在方法内部给aspx上所有的控件都New一个实例,然后构造一个树的结构,执行创建页面之后,页面上才会有控件。 例: 比如一个TextBox1,我们填入了”Hello World!”,在提交了页面后,在Page_Init()里面,我们访问到的TextBox1.Text不是我们的” Hello World!”,而是开始的”空字符串,如果TextBox1在我们设计的时候提供了默认值,这里访问到的也就是提供的默认值,为什么呢,这就要看下一个过程了. 主要步骤 2.判断IspostBack,确定是否回发。 IspostBack是Page类有一个bool类型的属性,用来判断针对当前FORM的请求是第一次还是非第一次请求。在框架内部有很多的场景需要判断IsPostBack,比如: LoadAllState等操作就需要在PostBack的时候进行。对于我们自己使用WebForm进行开发时,经常会在Page_Load中对IsPostBack进行判断,因为第一次请求的时候会执行Page_Load,在非第一次请求的时候也会执行Page_Load。为什么对同一个Form有多次请求呢?中引入了服务器端事件,支持服务器端事件的控件,会发出对当前Form的请求,这样在很多情形下我们就需要区别是否是对这个Form的第一次请求。 主要步骤 3.初始化 初始化包括三个阶段: 主要步骤 1)PreInit()预初始化 A.调用OnPreInit方法引发PreInit事件 B.利用App_Themes目录中的内容进行初始化主题。以动态现一个PageTheme??属性值,并创建一个编译类的实例。 C.应用模板页 主要步骤 2)开始初始化,将所创建的控件树上的控件都new一个实例并赋默认值。 A.递归初始化Controls集合中的控件,初始化包括设置这些控件的属性。 B.递归应用控件皮肤。 C.调用OnInit方法以引发自身的Init事件,接着递归调用子控件的OnInit方法来引发他们的Init事件。 D.调用自身的TrackViewState方法重启自身的视图状态跟踪,接着递归调用子控件的TrackViewState方法重启自身的视图状态跟踪。 3)InitComplete()初始化完成 主要步骤 4.加载ViewState处理回发数据: 加载页面状态,解析隐藏域中的ViewState,ViewState保持的值

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档