Объяснение жизненного цикла страницы ASP.NET - PullRequest
29 голосов
/ 10 декабря 2011

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

Ответы [ 7 ]

32 голосов
5 голосов
/ 06 декабря 2015

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

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

enter image description here

3 голосов
/ 10 декабря 2011

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

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

3 голосов
/ 10 декабря 2011

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

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

2 голосов
/ 19 мая 2014

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

R-SIL-VPRU

  1. Запрос
  2. Запуск
  3. Инициализация
  4. Загрузка
  5. Проверка
  6. Обработка обратной записи
  7. Рендеринг
  8. Unload

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

0 голосов
/ 09 апреля 2015
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
0 голосов
/ 01 июля 2014

PreInit:

Вы можете:

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

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

В случае события 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. Использование:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...