asp.net中生命周期的浅析
2009-03-09 11:47 AnyKoro 阅读(495) 评论(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中进行了。这样做的目的是,保证每一个在执行的时候,运行该控件的基础已经完备。
以上就是我的一些个人体会,希望对大家有用,错误之处请大家海涵并指正。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)