1. В определенный момент пользователь выполняет действие, инициирующее обратную отсылку — например, щелкает на кнопке. В этот момент страница отправляется со всеми данными формы.
  2. ASP.NET перехватывает возвращенную страницу и повторно создает объекты страницы, не забывая возвращать их в состояние, в котором они находились при последней отправке страницы клиенту.
  3. Затем ASP.NET проверяет, какая именно операция инициировала обратную отсылку, и запускает определенные события (например. Button.Click), на которые ваш код может реагировать. Обычно в этот момент вы выполняете какую-то серверную операцию (например, обновление базы данных или считывание информации из файла), а затем изменяете объекты элементов управления так, чтобы они отображали новую информацию.
  4. Измененная страница преобразуется в HTML и возвращается клиенту. Объекты страницы извлекаются из памяти. Если происходит еще одна обратная отсылка, ASP.NET повторяет действия 2-4.

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

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

Автоматические обратные отсылки

Разумеется, в описанной выше системе событий существует один пробел. Разработчики для Windows привыкли к полнофункциональной модели событий, позволяющей коду реагировать на перемещения мыши, нажатия клавиш клавиатуры и самые незначительные взаимодействия элементов управления. Но в ASP.NET действия клиента происходят на стороне клиента, а серверная обработка осуществляется на Web-сервере. Это означает, что ответ на событие всегда влечет за собой определенные накладные расходы. Поэтому быстро генерируемые события (например, событие перемещения мыши) в мире ASP.NET не практикуются.

На заметку! Если вы хотите достигнуть определенного эффекта интерфейса пользователя, можете обрабатывать быстрые события наподобие перемещения мыши с помощью клиентского JavaScript-кода. (Или, что еще лучше, можете применять пользовательский элемент управления ASP.NET, в который уже встроены такие возможности.) Однако весь бизнес-код должен выполняться в безопасной многофункциональной серверной среде.

предыдущая    следующая страница   оглавление

106

Hosted by uCoz