Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы Java и C# технологии.doc
Скачиваний:
181
Добавлен:
01.03.2016
Размер:
3.04 Mб
Скачать
        1. Жизненный цикл страницы

Жизненный цикл страницы ASP.NET начинается с получения и обработки Web-сервером IIS запроса к данной странице и передачи этого запроса среде выполнения ASP.NET.

В момент получения запроса, среда выполнения:

  • загружает класс вызываемой страницы;

  • устанавливает свойства класса страницы;

  • выстраивает дерево элементов;

  • заполняет свойства Request иResponse;

  • вызывает метод IHttpHandler.ProcessRequest.

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

Стоит отметить также, что помимо рассмотренных ниже этапов выполнения страницы существуют еще и этапы уровня приложения, не специфичные для страницы.

Во время прохождения этапов жизненного цикла возникают события, подписавшись на которые, разработчик может выполнять свой собственный код. Стоит упомянуть атрибут AutoEventWireup, директивы@Page: если этот атрибут установлен вtrue(значение по умолчанию), то методы класса страницы, названныеPage_НазваниеСобытия, автоматически становятся обработчиками соответствующих событий жизненного цикла станицы.

Для того, чтобы проследить жизненный цикл страницы и последовательность возникновения событий, можно установить атрибут Traceдирективы@Pageвtrue, а атрибутTraceModeвSortByTime. Тогда в разделеTraceInformationможно найти список произошедших событий (колонкаMessage).

Из всех событий жизненного цикла страницы, разработчик может подписаться только на пять, помимо событий дочерних элементов управления. Эти события: PreInit,Init,Load,PreRender,Unload. Рассмотрим варианты использования этих событий.

Таблица 5.1 – События жизненного цикла страницы

Событие

Использование

PreInit

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

  • создавать динамически элементы управления;

  • динамически устанавливать шаблон дизайна или тему оформления;

  • считывать или устанавливать свойства объекта Profile.

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

Init

На этом этапе разработчик может считывать или инициализировать свойства элементов управления

Load

На этом этапе разработчик может считывать или изменять свойства элементов управления

PreRender

Последняя возможность внести изменения во внешний вид страницы

Unload

Освобождение занятых ресурсов (закрытие открытых соединений с БД, завершение работы с файлами и т.п.)

Важно, что на этом этапе уже создано HTML представление страницы и попытка внести какие-либо изменения (например, вызвав метод Response.Write()), приведет к исключению