Перевод: Валент
Время: 11 июня 2007 г.
Исходный текст: http://ajax.asp.net/docs/overview/AJAXClientEvents.aspx
Каждый может оставлять комментарии, и я буду активно вносить изменения!
Введение [Введение]
Microsoft Ajax предлагает события жизненного цикла на стороне клиента, аналогичные событиям жизненного цикла на стороне сервера страниц ASP.NET 2.0. Эти события на стороне клиента позволяют нам настраивать наш пользовательский интерфейс как для традиционных обратных передач, так и для асинхронных обратных передач (частичные обновления страниц). Они также могут помочь вам управлять пользовательскими сценариями и использовать их на протяжении всего жизненного цикла страницы.
Эти события на стороне клиента предлагаются в классе Microsoft AJAX Libray (мы можем найти их в классе AJAX Libray). Эти классы автоматически создаются (создаются?) при загрузке серверного элемента управления с помощью AJAX. Эти классы предоставляют некоторые API, позволяющие нам привязывать события к обработчикам поставщиков событий. Библиотека AJAX не зависит от браузера, поэтому написанный вами код будет работать во всех поддерживаемых браузерах.
Ключевыми событиями являются событие загрузки экземпляра приложения, инициирующего запрос, и асинхронная обратная передача. Когда сценарий запускается во время события обработчика загрузки, все сценарии и компоненты загружены и доступны. Когда часть страницы обновляется с помощью элемента управления UpdatePanel, наиболее важным из всех клиентских событий является класс PageRequestManager. Эти события на стороне клиента позволяют реализовать определенные сценарии. Примеры включают в себя: отмену обратной передачи, установку более высокого приоритета для обратной передачи и улучшение взаимодействия UpdatePanel при обновлении.
Эти события очень помогают нам создавать страницы или писать компоненты. Если вы веб-разработчик, вы можете использовать собственные скрипты для загрузки и выгрузки страниц.
Чтобы узнать больше о событиях жизненного цикла на стороне сервера, вы можете обратиться к разделу «Обзор жизненного цикла страницы ASP.NET».
[Клиентские классы]
в библиотеке классов Microsoft AJAX предлагают два основных класса в жизненном цикле клиента веб-страниц AJAX: Класс приложения и класс PageRequestManager.
Экземпляр класса Application создается, когда браузер запрашивает страницу, содержащую элемент управления ScriptManager. Класс Application аналогичен серверному элементу управления Page. Он также наследует класс Control, но имеет некоторые дополнительные функции (по сравнению с событиями на стороне сервера). Аналогично, Application наследует класс Sys.COmComponent. Кроме того, он также предоставляет множество работоспособных событий в течение жизненного цикла клиента.
Если страница содержит ScriptManager и один или несколько элементов управления UpdatePanel, на странице можно добиться эффекта частичного обновления. В этом случае экземпляр класса PageRequestManager доступен браузеру. Клиентские события, предоставляемые PageRequestManager, связаны с асинхронной обратной передачей. Дополнительные сведения о создании частичных страниц см. в разделе: Обзор рендеринга частичных страниц
Добавление обработчиков для событий клиента [Добавить обработчик для событий клиента]
Теперь добавьте или удалите события с помощью методов add_eventname и reomve_eventname в классах Application и PageRequestManager. В следующем примере показано, как добавить обработчик с именем MyLoad к событию инициализации объекта Application.
Sys.Application.add_init(MyInit);
функция MyInit(отправитель) {
}
Sys.Appplication.remove_init(MyInit);
Комментарий; В этом примере показан только синтаксис использования методов add_eventname и remove_eventname. Более подробная информация об использовании этого события представлена в следующем разделе.
Обработка событий загрузки и выгрузки приложения [События загрузки и выгрузки приложения операции]
Чтобы управлять событиями загрузки и выгрузки объекта приложения, нет необходимости явно привязываться к событию операции. Вместо этого вы можете создать функцию напрямую, используя зарезервированные ключевые слова pageLoad и pageUnload. В следующем примере показано, как добавить действие к событию загрузки приложения.
функция pageLoad (отправитель, аргументы) {
}
События для других клиентских классов [Другие клиентские классы]
В этом разделе описаны только события, предоставляемые классами Application и PageRequestManager. Библиотека классов Microsoft AJAX также включает следующие классы для добавления, очистки и удаления событий элементов DOM. К этим классам относятся:
Существует метод Sys.UI.DomEvent.addHandler или сокращенное обозначение $addHandler
Существует метод Sys.UI.DomEvent.clearHandlers или сокращенное обозначение $clearHandlers
Существует метод Sys.UI.DomEvent.removeHandler или сокращенное обозначение $
.RemoveHandler
События, предоставляемые принципами DOM, не обсуждаются в этом разделе.
Клиентские события классов Application и PageRequestManager [Клиентские события классов Application и PageRequestManager]
В следующей таблице перечислены клиентские события классов Application и PageRequestManager, которые можно использовать на страницах AJAX ASP.NET. Последовательность событий будет обсуждаться в следующей теме.
Событие
(название мероприятия)
Описание
(описывать)
initEvent
[Событие инициализации]
Это событие возникает после загрузки всех сценариев и до создания каких-либо объектов. Если вы планируете написать компонент (скрипт), событие init предоставляет точку в жизненном цикле для добавления компонента (скрипта) на страницу. Этот компонент может вызываться другими скриптами в жизненном цикле. Если вы веб-разработчик, в большинстве случаев рекомендуется использовать событие загрузки вместо события инициализации.
Событие init создается только один раз, когда страница начинает генерироваться. Последующие частичные обновления страницы не вызовут событие инициализации.
событие загрузки
[событие загрузки]
Это событие возникает после загрузки всех сценариев и создания всех программных объектов, инициализированных с помощью $create. Это событие будет вызываться всеми обратными передачами на сервер, включая асинхронные обратные передачи.
Если вы веб-разработчик, вы можете создать функцию pageLoad, которая предоставляется самим событием загрузки. Операцию pageLoad (обработчик) можно вызвать после любой операции, добавляемой к событию загрузки с помощью метода add_load.
Для события загрузки требуется объект Sys.ApplicationLoadEventArgs в качестве параметра eventargs. Вы можете использовать этот параметр, чтобы решить, нужно ли странице отображать частичное обновление, а также решить, какие компоненты следует создать после запуска последнего события загрузки.
выгрузить событие
[Удалить событие]
Возникает до того, как все объекты будут освобождены и до того, как произойдет событие браузера window.unload.
Вы можете обработать событие выгрузки с помощью функции pageUnload, предоставляемой самой системой. Событие pageUnload вызывается, когда страница выгружается в браузере. Во время этого события мы должны освободить все ресурсы, занятые кодом.
Событие propertyChanged
[Событие изменения атрибута]
Возникает при изменении свойств компонента. Объект приложения наследует это событие от класса Component. Это событие возникает только тогда, когда разработчик вызывает метод Sys.Component.raisePropertyChange при установке значения свойства.
Дополнительные сведения см. в разделе «Определение свойств пользовательского компонента и вызов событий PropertyChanged».
Для событий изменения свойств требуется объект Sys.applicationLoadEventArgs в качестве параметра eventargs.
удаление события
[событие релиза]
Это событие возникает при выпуске экземпляра приложения. Объект приложения наследует это событие от класса Component.
Событие инициализацииЗапроса
[Событие запроса инициализации]
Это событие происходит в начале асинхронного запроса. Вы можете использовать это событие для отмены традиционной обратной передачи, например, чтобы разрешить асинхронной обратной передаче иметь приоритет.
Для события запроса инициализации требуется параметр eventargs, предоставляемый объектом Sys.WebForms.InitializeRequestEventArgs. Этот объект предоставляет полезные элементы объектов, которые вызывают обратные передачи и базовые запросы. Это событие также предоставляет атрибут отмены. Если вы установите для параметра cancel значение true, новая обратная передача будет отменена.
Событие BeginRequest
[Начать событие запроса]
Это событие возникает перед началом асинхронной обратной передачи на сервер. Если процесс обратной передачи уже существует, он будет остановлен (с помощью метода abortPostBack). Вы можете использовать это событие для установки заголовков запросов или отображения интересного (анимационного) приглашения на странице, указывающего на то, что запрос выполняется.
Для этого события требуется объект Sys.WebForms.BeginRequestEventArgs в качестве параметра eventargs. Этот объект предоставляет полезные элементы для выполнения обратных передач и базовых объектов запроса.
Событие загрузки страницы
[Событие загрузки страницы]
Возникает перед обновлением любого содержимого на странице, когда сервер получает асинхронную обратную передачу. Вы можете использовать это событие, чтобы обеспечить собственный эффект перехода для содержимого, которое необходимо обновить.
Для этого события требуется объект Sys.WebForms.PageLoadingEventArgs в качестве параметра eventargs. Этот объект предоставляет полезную информацию о том, какие панели будут удалены и обновлены в результате последней асинхронной обратной передачи.
Событие pageLoaded
[Событие завершения загрузки страницы]
Возникает после обновления всего содержимого страницы в результате синхронной или асинхронной обратной передачи. Во время синхронной обратной передачи панели можно только создавать, но во время асинхронной обратной передачи панели можно создавать и обновлять. Вы можете использовать это событие для управления пользовательским эффектом изменения содержимого, которое необходимо обновить.
Для этого события требуется объект Sys.WebForms.PageLoadedEventArgs в качестве параметра eventargs. Этот объект предоставляет полезную информацию о том, какие панели были обновлены и созданы во время последней обратной передачи.
Событие endRequest
[завершить событие запроса]
Вызывается после завершения асинхронной обратной передачи в ответ и обновления страницы или после того, как во время запроса произошла ошибка. В случае возникновения ошибки страница не будет обновлена. Используйте это событие, чтобы предоставить посетителям индивидуальное сообщение об ошибке или войти в журнал ошибок.
Для этого события требуется объект Sys.WebForms.EndRequestEventArgs в качестве параметра eventargs. Этот объект предоставляет некоторую полезную информацию о возникшей ошибке и о том, была ли она обработана. Он также предоставляет доступную информацию о соответствующем объекте.
Пример порядка событий [Пример порядка событий]
В следующем примере показано, как события на стороне клиента будут вызываться на странице с двумя вложенными элементами управления UpdatePanel. Обратите внимание на разницу между нажатием кнопки на родительской панели и кнопки на встроенной панели. Кнопка на родительской панели приведет к обновлению родительской панели, а встроенная в нее панель будет удалена и создана заново. Кнопки со встроенными панелями вызывают обновления только встроенной панели.
Код страницы:
1<%@ Язык страницы="C#" %>
2
3 4 " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
5
6