代码改变世界

asp.net中生命周期的浅析

2009-03-09 11:47  AnyKoro  阅读(491)  评论(2编辑  收藏  举报

由于,一直对asp.net中生命周期的问题困惑,所以就特地去学习了下生命周期。

生命周期我觉得主要能分成一下几个阶段,按照发生的时间顺序

1、初始化页面框架

这个过程触发page.Init事件,这个是在各种事件被触发时都会运行的。不过需要注意的是,正如他的名字那样,这个时候是对页面框架的初始化,所以是无法进行UI行为的。

2、应用程序代码初始化

这个过程对应的事件是Page_Load,在这个事件中asp.net是会判断页面是回发还是首次加载的。不过,尽管如此Page_Load在各种事件被触发时都会运行的。所以,可以通过IsPostBack来进行写辅助操作。

3、执行事件处理

如果是首次加载则会不运行用户触发的事件,如Click事件等。则是直接执行Page_PreRender事件。此时整个过程主要事件顺序为Page_Init-Page_Load-Page_PreRender

但是,如果是用户触发了事件,如发生了Click操作,则整个过程将会变成 Page_Init-Page_Load-Click事件-Page_PreRender

 当然除了这三个过程还有其他的过程,我为了能使得生命周期看起来更简单,所以省去了一些个人感觉不十分重要的过程。

那么这三个过程对我们来说有什么作用呢?

首先知道了 Page_Init-Page_Load-Page_PreRender三者的执行顺序和执行性质,那么我们就能根据这个顺序,去初始化一些数据。比如对page_Init所属的类,我们可以利用Page_Init对其的一些字段进行初始化,而asp.net控件的初始化则可以放在Page_Load中,最后对于用户自定义的UI控件就需要在Page_PreRender中进行了。这样做的目的是,保证每一个在执行的时候,运行该控件的基础已经完备。

以上就是我的一些个人体会,希望对大家有用,错误之处请大家海涵并指正。

 

安内网