【问题标题】:ASP.NET page life cycle explanationASP.NET页面生命周期解释
【发布时间】:2012-01-17 10:37:03
【问题描述】:

不久前的一次采访中,我被要求解释 ASP.NET 页面的生命周期。我确实向他解释过,但他对我的回答并不满意。有人可以向我解释一下生命周期吗?

【问题讨论】:

    标签: asp.net page-lifecycle


    【解决方案1】:

    ASP.NET页面生命周期中有10个事件,顺序为:

    1. 初始化
    2. 加载视图状态
    3. 回发数据
    4. 加载
    5. 验证
    6. 活动
    7. 预渲染
    8. 保存视图状态
    9. 渲染
    10. 卸载

    下面是 ASP.NET 页面生命周期的图形视图,其中包含该事件中预期的代码类型。我建议你阅读this article I wrote on the ASP.NET Page life cycle,它详细解释了 10 个事件中的每一个以及何时使用它们。

    图片来源:2010 年 4 月 19 日我在https://www.c-sharpcorner.com/uploadfile/shivprasadk/Asp-Net-application-and-page-life-cycle/ 发表的文章

    【讨论】:

    • 视觉效果不错。我可以将其展示给管理层,以帮助他们理解我试图解释的关于由于意大利面条代码而多次访问数据库的内容。
    【解决方案2】:

    这个首字母缩写词可能会帮助您记住我在下面的博客文章中所写的 ASP.NET 生命周期阶段。

    R-SIL-VP-RU

    1. 请求
    2. 开始
    3. 初始化
    4. 加载
    5. 验证
    6. 回发处理
    7. 渲染
    8. 卸载

    来自我的博客:Understand ASP.NET Page life cycle and remember stages in easy way
    2014 年 5 月 18 日

    【讨论】:

    • 明确披露任何隶属关系以避免您的帖子被标记为垃圾邮件非常重要。我注意到您在 SO 上的所有答案都带有指向同一个博客的链接(事实上,每个答案的全部内容都严重依赖于所述链接),其中每个特定链接都指向发布的特定博客文章少于在您发布每个答案的前一天
    • 另外,这个首字母缩写词一点也不容易记住。也许像“RSVP,俄罗斯”这样的助记符代表“Répondez S'il Vou P laît, Russia" 会更容易吗?
    【解决方案3】:
    Partial Class _Default
        Inherits System.Web.UI.Page
        Dim str As String
    
        Protected Sub Page_Disposed(sender As Object, e As System.EventArgs) Handles Me.Disposed
    
            str += "PAGE DISPOSED" & "<br />"
        End Sub
    
        Protected Sub Page_Error(sender As Object, e As System.EventArgs) Handles Me.Error
            str += "PAGE ERROR " & "<br />"
        End Sub
    
        Protected Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
            str += "PAGE INIT " & "<br />"
        End Sub
    
        Protected Sub Page_InitComplete(sender As Object, e As System.EventArgs) Handles Me.InitComplete
            str += "INIT Complte " & "<br />"
        End Sub
    
        Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
            str += "PAGE LOAD " & "<br />"
    
        End Sub
    
        Protected Sub Page_LoadComplete(sender As Object, e As System.EventArgs) Handles Me.LoadComplete
            str += "PAGE LOAD Complete " & "<br />"
        End Sub
    
        Protected Sub Page_PreInit(sender As Object, e As System.EventArgs) Handles Me.PreInit
            str = ""
            str += "PAGE PRE INIT" & "<br />"
        End Sub
    
        Protected Sub Page_PreLoad(sender As Object, e As System.EventArgs) Handles Me.PreLoad
            str += "PAGE PRE LOAD " & "<br />"
        End Sub
    
        Protected Sub Page_PreRender(sender As Object, e As System.EventArgs) Handles Me.PreRender
            str += "PAGE PRE RENDER " & "<br />"
        End Sub
    
        Protected Sub Page_PreRenderComplete(sender As Object, e As System.EventArgs) Handles Me.PreRenderComplete
            str += "PAGE PRE RENDER COMPLETE " & "<br />"
        End Sub
    
        Protected Sub Page_SaveStateComplete(sender As Object, e As System.EventArgs) Handles Me.SaveStateComplete
            str += "PAGE SAVE STATE COMPLTE  " & "<br />"
            lbl.Text = str
        End Sub
    
        Protected Sub Page_Unload(sender As Object, e As System.EventArgs) Handles Me.Unload
            'Response.Write("PAGE UN LOAD\n")
        End Sub
    End Class
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多