做ASP.NET开发也有一段时间了,但是从来没有静下心来学习过,随着技术更新的不断加快,明显感到有些力不从心,所以决定从现在开始静下心来学习.NET平台上的各种技术,那么就先从ASP.NET开始吧。
今天,我就把ASP.NET生命周期的一些学习体会记录下来,一为学过的知识点做一总结,二为跟我一样的初学者共同学习,三是最重要的,希望有大牛指正我学习过程中的一些误区,在此不胜感激。
昨天经过自己的一些试验和参考书上的一些讲解,初步理清ASP.NET页面的生命周期。现记录如下:
ASP.NET页面的生命周期大致可以分为一下几个阶段:
(1) 调用构造方法
(2) 确定回传模式:是第一次加载还是自回传
(3) 页面初始化期
a) 预初始化
b) 初始化
(4) 页面加载期
a) 预加载
b) 加载
(5) 页面呈现期
a) 预呈现
b) 呈现
(6) 页面卸载期
a) 卸载
注:要查看详细的阶段,可以在Page指令里加上Trace=”true”的属性
而根据页面的是第一次请求还是回传,这几个阶段有些许的不同,下面就一一讲解
如果页面是被第一次请求,将经历一下的几个阶段:
页面初始化:
Page_PreInit(object sender,EventArgs e):预初始化事件
Page_Init(object sender,EventArgs e):初始化事件
页面加载:
Page_PreLoad(object sender,EventArgs e):页面预加载事件
Page_Load(object sender,EventArgs e):页面加载事件
页面呈现:
Page_PreRender(object sender,EventArgs e):页面预呈现事件
Page_Render(object sender,EventArgs e):页面呈现事件
页面卸载:
Page_Unload(object sender,EventArgs e):页面卸载事件
大体上来说,页面第一次请求就是经历了以上的几个阶段,当然,大家如果在Page指令里加上Trace=”true”的属性,可以看到更详细的。根据需要,我们可以针对这些事件进行编程处理。
那如果是页面回传呢?其实,页面回传所经历的过程跟上面的一样,唯一需要注意的地方就是使用ViewState的阶段,只有当进入PreLoad阶段时,ViewState才被恢复,Session也相同。