Жизненный цикл ASP.NET определяет, как:
ASP.NET обрабатывает страницы для создания динамического вывода
Приложение и его страницы создаются и обрабатываются.
ASP.NET динамически компилирует страницы.
Жизненный цикл ASP.NET можно разделить на две группы:
Жизненный цикл приложения
Жизненный цикл страницы
Жизненный цикл приложения состоит из следующих этапов:
Пользователь запрашивает доступ к ресурсу приложения, которым является страница. Браузер отправляет этот запрос на веб-сервер.
Единый конвейер получает первый запрос, и происходят следующие события:
Создается объект класса ApplicationManager.
Объект класса HostingEnvironment создается для предоставления информационного ресурса.
Создайте объект ответа. Объекты приложения, такие как HttpContext, HttpRequest и HttpResponse, создаются и инициализируются.
Экземпляр объекта HttpApplication создается и назначается запросу.
Запросы обрабатываются классом HttpApplication. Различные события запускают такие запросы на обработку.
Когда страница запрашивается, она загружается в память сервера, затем обрабатывается и передается браузеру. Затем выгрузите его из памяти. На каждом из этих шагов доступны методы и события, которые можно адаптировать при необходимости для приложения. Другими словами, вы можете написать свой собственный код, чтобы заменить код по умолчанию.
Класс страницы создает иерархическое дерево всех элементов управления на странице. Все компоненты на странице, кроме директив, являются частью дерева управления. Вы можете просмотреть дерево управления, добавив в директиву страницы трассировку = «true». Мы переопределим директивы страницы и отследим их в разделах «директивы» и «обработка событий».
Стадии жизненного цикла страницы:
инициализация
Создание экземпляра элемента управления страницей
Восстановление и обслуживание состояния
Выполнение кода обработки событий
Отображение страницы
Понимание страничного цикла помогает нам писать код так, чтобы определенные события могли происходить на любом этапе жизненного цикла страницы. Это также помогает вам писать собственные элементы управления и инициализировать их в нужное время, заполнять их свойства данными из состояния представления и запускать код, определяющий поведение элемента управления.
Ниже приведены различные этапы создания страницы ASP.NET:
Запрос страницы . Когда ASP.NET получает запрос страницы, он решает, следует ли проанализировать и скомпилировать страницу или получить соответствующий ответ из кэшированной версии страницы.
Начало жизненного цикла страницы . На этом этапе настраиваются объекты запроса и ответа. Если это старый запрос или обратная передача, свойство IsPostBack страницы установлено в правильное значение. Также установлено свойство страницы ULCulture.
Инициализация страницы . На этом этапе элементам управления на странице присваиваются уникальные идентификаторы, а темы применяются путем установки свойства UniqueID. Для нового запроса загружаются данные обратной передачи, и свойства элемента управления восстанавливаются до значений состояния просмотра.
Загрузка страницы . На этом этапе устанавливаются свойства элемента управления с использованием значений состояния просмотра и состояния управления.
Проверка — метод проверки элемента управления вызывается и выполняется успешно, а для свойства IsValid страницы установлено значение true.
Обработка событий обратной передачи . Если запрос является обратной передачей (старый запрос), вызывается соответствующий обработчик событий.
Отображение страницы . На этом этапе сохраняется состояние просмотра страницы и все элементы управления. Страница вызывает метод отображения для каждого элемента управления, а визуализированные выходные данные записываются в класс OutputStream в свойствах ответа страницы.
Выгружено — отображаемая страница передается клиенту, а атрибуты страницы, такие как ответы и запросы, выгружаются и очищаются.
На каждом этапе жизненного цикла страницы страница активируется некоторое время и будет закодирована. Обработчик событий — это, по сути, функция или подпрограмма, привязанная к событию с помощью декларативных свойств или обработчиков, таких как OnClick.
Ниже приведены события жизненного цикла страницы:
PreInit — PreInit — это первое событие в жизненном цикле страницы. Он проверяет свойство IsPostBack и определяет, выполняется ли обратная передача страницы. Он устанавливает темы и домашние страницы, создает динамические элементы управления, а также получает и устанавливает значения свойств профиля значений. Это событие можно обработать, переопределив метод OnPreInit или создав обработчик Page_PreInit.
Init — событие Init инициализирует свойства элемента управления и строит дерево управления. Это событие можно обработать, перегрузив метод OnInit или создав обработчик Page_Init.
InitComplete — событие InitComplete позволяет отслеживать состояние просмотра. Включите отслеживание состояния просмотра для всех элементов управления.
LoadViewState — событие LoadViewState позволяет загружать информацию о состоянии представления в элемент управления.
LoadPostData — на этом этапе обрабатывается содержимое всех полей ввода, определенных тегами .
Предварительная загрузка — предварительная загрузка происходит перед загрузкой данных обратной передачи в элемент управления. Это событие можно обработать, переопределив метод OnPreLoad или создав обработчик Pre_Load.
Load — событие Load вызывается сначала страницей, а затем рекурсивно для всех дочерних элементов управления. Элементы управления в дереве управления созданы. Это событие можно обработать, перегрузив метод OnLoad или создав обработчик Page_Load.
LoadComplete — процесс загрузки завершается, запускаются обработчики событий управления и происходит проверка страницы. Это событие можно обработать, перегрузив метод OnLoad или создав обработчик Page_LoadComplete.
PreRender — событие PreRender происходит непосредственно перед отображением вывода. Обрабатывая это событие, страницы и элементы управления могут выполнять любые обновления перед отображением вывода.
PreRenderComplete — когда событие PreRender вызывается для всех дочерних элементов управления в цикле, это событие обеспечивает завершение фазы предварительного отображения.
SaveStateComplete — состояние элемента управления страницы сохраняется. Информация о персонализации, состоянии управления и состоянии просмотра сохраняется.
Выгрузка. Фаза выгрузки — это последняя фаза жизненного цикла страницы. Он вызывает событие UnLoad для всех элементов управления в цикле и, наконец, для самой страницы. Наконец завершает очистку и освобождение всех ресурсов и ссылок, таких как подключения к базе данных. Это событие можно обработать, настроив метод OnLoad или создав обработчик Page_UnLoad.