Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_CSharp_5.docx
Скачиваний:
38
Добавлен:
11.05.2015
Размер:
472.96 Кб
Скачать

5.6. ЖИзненный цикл страницы

В данном параграфе подробно рассматриваются все этапы жизненного цикла страницы ASP.NET.

Класс страницы и входящие в её состав элементы управления отвечают за выполнение запроса к этой странице и рендеринг HTML-кода для клиента. Взаимодействие между клиентом и сервером осуществляется без сохранения состояния, поскольку такова природа протокола HTTP. Однако реальным приложениям необходимо, чтобы определенные данные состояния сохранялись между последовательными вызовами одной и той же страницы. В ASP.NET имеется встроенная инфраструктура, которая сохраняет и восстанавливает состояние страницы прозрачным для приложения способом. Таким образом, несмотря на природу базового протокола, пользователю кажется, что он участвует в непрерывном процессе.

Иллюзия непрерывности создается подсистемой ASP.NET, отвечающей за управление состоянием представления страниц. Перед рендерингом своего контента в HTML-формате страница кодирует и сохраняет (обычно в скрытом поле), всю информацию состояния представления. Когда происходит возврат формы, состояние представления извлекается из скрытого поля, десериализуется и используется для инициализации экземпляров серверных элементов управления.

Состояние представления уникально для каждого экземпляра страницы, поскольку оно встроено в HTML-код. Благодаря этому при возврате формы элементы управления страницы инициализируются теми же значениями, какие они имели в тот момент, когда в последний раз осуществлялся рендеринг страницы для клиента. На дополнительном этапе жизненного цикла страницы происходит объединение сохраненного состояния представления с изменениями, внесенными в результате действий клиента. Таким образом, после возврата формы страница выполняется в актуальном контексте, как будто используется непрерывное соединение «точка-точка».

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

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

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

1. Подготовка страницы к выполнению

Когда исполняющая среда HTTP создает экземпляр страницы для обслуживания запроса, конструктор страницы формирует дерево её элементов управления. Подготавливаются и инициализируются все дочерние элементы управления и внутренние объекты страницы, такие как объекты запроса и ответа.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]