.NET 页面的生命周期

昨天跟同事开了个玩笑,说.NET页面里面page_load 和JS里面的window.onload 那个先执行,

发现很多同事都说JS里面的会先执行.只有一个同事说后台的会先执行,后来他们都不信,后来做了个简单的实验,发现page_load确实是先执行的

个人把 “三生石上” 的.net页面生命周期在做简单的抄下.

  • 实例化阶段:根据ASPX标签定义的静态结构创建控件的层次结构,并会调用页面的Page_Init事件处理函数。
  • 加载视图状态阶段(仅回发):将VIEWSTATE中发现的视图状态数据恢复到控件的层次结构中。
  • 加载回发数据阶段(仅回发):将回发的表单数据恢复到控件的层次结构中,如果表单控件的数据发生变化,还有可能在第5个阶段触发相应的事件。
  • 加载阶段:此时控件的层次结构已经创建完毕,并且控件的状态已经从视图数据和回发数据中回发,此时可以访问所有的控件属性,并会调用页面的Page_Load事件处理函数。
  • 触发回发事件(仅回发)阶段:触发回发事件,比如按钮的点击事件、下拉列表的选中项改变事件。
  • 保存视图状态阶段:保存所有控件的视图状态。
  • 渲染阶段:将所有页面控件渲染为HTML代码。

由上面可以看到window.onload应该是最后面才会执行.由此可见,.NET页面的生命周期确实是 .net web开发人员所必需掌握和理解的知识

有个新来的同事确实能把生命周期背下来,确根本都不理解,这样根本也是没有用的.

posted on 2012-12-26 10:06  p1anw2ei  阅读(509)  评论(0)    收藏  举报

导航