ASP.NET: Этапы жизненного цикла страницы
ASP.NET programming russian
Наверно редкое собеседование по ASP.NET
не обходится без вопроса о жизненном цикле страницы в ASP.NET Web Forms
(далее для краткости ASP.NET
). Попытаемся разобраться в этом вопросе. Разделил тему на две. В текущей статье разберем этапы жизненного цикла страницы в ASP.NET
.
Общий план
Жизненный цикл страницы ASP.NET
- получение и обработка web-сервером IIS запроса к странице
- дальнейшая передача запроса среде выполнения ASP.NET
-
среда выполнения:
* загружает класс вызываемой страницы * устанавливает свойства класса страницы * выстраивает дерево элементов * заполняет свойства Request и Response * вызывает метод ```IHttpHandler.ProcessRequest```
Далее среда выполнения проверяет каким образом была вызвана эта страницы и если страница вызвана путем передачи данных с другой страницы, то среда выполнения устанавливает свойство PreviousPage
Этапы
Выделяется 8 основных этапов. Наглядно это демонстрирует следующая схема
Этап | Описание |
---|---|
Запрос станицы | Запрос страницы осуществляется до начала жизненного цикла страницы. Пользователь осуществляет запрос, среда выполнения
ASP.NET
устанавливает, необходимо ли осуществить компиляцию страницы и начать жизненный цикл, либо можно выдать в качестве ответа страницу из кеша, не выполняя страницы. |
Начало обработки | На этом этапе происходит установка свойство
Response
и
Request
и свойства
UICulture
. Также, на этом этапе устанавливается, была ли эта страница запрошена в результате postback и соответствующим образом устанавливается свойство
IsPostBack
. |
Инициализация страницы | Ко времени инициализации страницы все дочерние пользовательские элементы управления уже созданы и имеют установленный свойства
UniqueID
. В это время к странице применяются темы оформления. Если страница вызвана в результате postback, то данные, отправленные на сервер, еще не загружены в свойства элементов управления, на этом этапе. |
Загрузка | Если страница вызвана в результате postback, то на этом этапе устанавливаются свойства элементов управления, на основании информации о состоянии (
ViewState
и
ControlState
). |
Валидация | Вызывается метод
Validate()
для всех, находящихся на странице валидаторов. |
Обработка постбэка | Вызываются обработчики событий если postback произошел. |
Рендеринг | Сохраняется информация о состоянии, затем класс страницы вызывает соответствующие методы дочерних элементов управления для генерации HTML представления и передачи его в Response.OutputStream. |
Выгрузка | Выгрузка происходит после того, как создано HTML представление для всей страницы. |