Объяснение жизненного цикла страницы ASP.NET

Меня попросили объяснить жизненный цикл страницы ASP.NET в интервью некоторое время назад. Я объяснил ему это, но он не был удовлетворен моим ответом. Может ли кто-нибудь объяснить мне жизненный цикл, пожалуйста?

7 ответов

Решение

Существует 10 событий в жизненном цикле страницы ASP.NET, и их последовательность:- инициализация, загрузка состояния просмотра,PostBackdata, загрузка, проверка, событие, предварительная визуализация, сохранение состояния просмотра, визуализация и выгрузка.

Ниже приведено графическое представление жизненного цикла страницы ASP.NET с указанием типа кода в этом событии. Я бы посоветовал вам прочитать эту статью о жизненном цикле страницы ASP.NET, которая подробно объясняет все 10 событий и когда их использовать.

Я рекомендую эту страницу из MSDN:

Обзор жизненного цикла страницы ASP.NET

Я думаю, что Microsoft сделала лучшую работу в этом. Я бы просто суммировал их резюме, выделив наиболее значимые части каждого события.

Обзор жизненного цикла страницы ASP.NET

Обзор жизненного цикла страницы ASP.Net

Когда страница ASP.Net запускается, она проходит жизненный цикл, в течение которого выполняется ряд этапов обработки. Это включает в себя

  • инициализация
  • Инстанцирующий контроль
  • Восстановление и поддержание состояния
  • Запуск кода обработчика события и
  • Rendering

Зачем нам нужно изучать жизненный цикл ASP.Net Page?

Для вас важно понимать жизненный цикл страницы, чтобы вы могли написать код на соответствующей стадии жизненного цикла для ожидаемого эффекта.

Если вы разрабатываете пользовательские элементы управления, вы должны быть знакомы с жизненным циклом страницы, чтобы правильно инициализировать элементы управления, заполнить код поведения элемента управления. Жизненный цикл элемента управления основывается на жизненном цикле страницы, и на странице возникает много событий, которые необходимо обработать в пользовательском элементе управления.

Общие страницы жизненного цикла статистики:

Некоторые части жизненного цикла происходят только тогда, когда страница обрабатывается как обратная передача. Для обратных передач жизненный цикл страницы такой же, как и во время частичной обратной передачи (как при использовании элемента управления "Панель обновления"), так же, как и во время полной обратной передачи страницы.

  1. Запрос страницы
  2. Начните
  3. инициализация
  4. нагрузка
  5. Обработка события обратной передачи
  6. Rendering
  7. разгружать

1). Запрос страницы:

Запрос страницы происходит до начала жизненного цикла страницы. Когда пользователь запрашивает страницу, ASP.Net определяет, нужно ли ее анализировать и компилировать (отсюда и начинается жизнь pge), или же можно отправить кешированную версию страницы в ответ без запуска страницы.

Прочитайте полную статью о "обзоре жизненного цикла страницы ASP.Net" здесь.

Ответ уже опубликован другими. просто делюсь кодом быстрого доступа, чтобы запомнить этапы жизненного цикла asp.net, с которыми я столкнулся в посте ниже.

Р-Sil-VPRU

  1. Запрос
  2. Начните
  3. инициализация
  4. нагрузка
  5. Проверка
  6. Обработка обратной почты
  7. Rendering
  8. разгружать

    Как легко запомнить жизненный цикл страницы asp.net

PreInit:

Вы можете:

Проверьте свойство IsPostBack, чтобы определить, выполняется ли это в первый раз при обработке страницы. Создать или воссоздать динамические элементы управления. Установить главную страницу динамически. Установите свойство Theme динамически. Прочитайте или установите значения свойств профиля. Если запрос обратный:

Значения элементов управления еще не были восстановлены из состояния просмотра. Если вы установите свойство control на этом этапе, его значение может быть перезаписано в следующем событии. В этом:

В случае события Init отдельных элементов управления сначала происходит, а затем событие Init страницы. Это событие используется для инициализации свойств элемента управления. Initcomplete:

Отслеживание ViewState включено в этом случае. Любые изменения, внесенные в ViewState в этом событии, сохраняются даже после следующей обратной передачи. PreLoad:

Это событие обрабатывает данные обратной передачи, включенные в запрос. Нагрузка:

В этом случае объект Page вызывает метод OnLoad для самого объекта Page, затем вызывается метод элементов управления OnLoad. Таким образом, событие загрузки отдельных элементов управления происходит после события загрузки страницы. ControlEvents:

Это событие используется для обработки определенных событий элемента управления, таких как событие Click элемента управления Button или событие TextChanged элемента управления TextBox. В случае обратной передачи:

Если страница содержит элементы управления validator, свойство Page.IsValid и проверка элементов управления выполняются до запуска отдельных событий элемента управления. LoadComplete:

Это событие происходит после этапа обработки события. Это событие используется для таких задач, как загрузка всех других элементов управления на странице. PreRender:

В этом случае событие PreRender страницы вызывается сначала, а затем для дочернего элемента управления. Использование:

Этот метод используется для внесения окончательных изменений в элементы управления на странице, например, назначение DataSourceId и вызов метода DataBind. PreRenderComplete:

Это событие возникает после завершения каждого свойства элемента управления PreRender. SaveStateComplete:

Это происходит после того, как состояние элемента управления и состояние просмотра были сохранены для страницы и для всех элементов управления. RenderComplete:

Объект страницы вызывает этот метод для каждого элемента управления, присутствующего на странице. Этот метод записывает разметку элемента управления, чтобы отправить ее в браузер. Выгрузка:

Это событие вызывается для каждого элемента управления, а затем для объекта Page. Использование:

Используйте это событие в элементах управления для окончательной очистки, такой как закрытие открытых подключений к базе данных, закрытие открытых файлов и т. Д.

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
Другие вопросы по тегам