Tradução: Valens
Horário: 11/06/2007
Texto original: http://ajax.asp.net/docs/overview/AJAXClientEvents.aspx
Todos são bem-vindos para fazer comentários e farei modificações ativamente!
Introdução [Introdução]
O Microsoft Ajax propõe eventos de ciclo de vida do lado do cliente semelhantes aos eventos de ciclo de vida do lado do servidor das páginas ASP.NET 2.0. Esses eventos do lado do cliente nos permitem personalizar nossa interface de usuário tanto para postbacks tradicionais quanto para postbacks assíncronos (atualizações parciais de página). Eles também podem ajudá-lo a gerenciar e usar scripts personalizados durante todo o ciclo de vida da página.
Esses eventos do lado do cliente são propostos na classe AJAX Libray da Microsoft (podemos encontrá-los na classe AJAX Libray). Essas classes são automaticamente instanciadas (instanciadas?) ao carregar um controle de servidor com AJAX. Essas classes fornecem algumas APIs para que possamos vincular eventos a manipuladores de provedores de eventos. E a biblioteca AJAX é independente do navegador, portanto o código que você escreve funcionará em todos os navegadores suportados.
Os principais eventos são o evento de carregamento da instância do aplicativo que inicia a solicitação e o postback assíncrono. Quando o script é executado durante o evento do manipulador de carregamento, todos os scripts e componentes foram carregados e estão disponíveis. Quando parte da página é atualizada usando o controle UpdatePanel, o mais crítico de todos os eventos do cliente é a classe PageRequestManager. Esses eventos do lado do cliente permitem implementar determinados cenários. Os exemplos incluem: Desfazer postbacks, definir uma prioridade mais alta para um postback e fazer com que o UpdatePanel interaja melhor durante a atualização.
Esses eventos são muito úteis para criarmos páginas ou escrevermos componentes. Se você é um desenvolvedor web, pode usar scripts personalizados para carregar e descarregar páginas.
Para saber mais sobre eventos de ciclo de vida do lado do servidor, você pode consultar Visão geral do ciclo de vida da página ASP.NET
[Classes de cliente]
na biblioteca de classes Microsoft AJAX que propõe duas classes principais no ciclo de vida do cliente de páginas da web AJAX: Classe de aplicativo e classe PageRequestManager.
A classe Application é instanciada quando o navegador solicita uma página que contém um controle ScriptManager. A classe Application é semelhante ao controle Page do lado do servidor. Ela também herda da classe Control, mas possui algumas funções adicionais (em comparação com eventos do lado do servidor). Da mesma forma, Application herda a classe Sys.COmponent. Além disso, também fornece muitos eventos operáveis durante o ciclo de vida do cliente.
Se uma página contiver um ScriptManager e um ou mais controles UpdatePanel, a página poderá obter efeitos de atualização parciais. Nesse caso, uma instância da classe PageRequestManager fica disponível para o navegador. Os eventos de cliente fornecidos por PageRequestManager tratam de postback assíncrono. Para obter mais detalhes sobre a geração de páginas parciais, consulte: Visão geral da renderização de página parcial.
Adicionando manipuladores para eventos de cliente [Adicionar manipulador para eventos de cliente]
Agora adicione ou remova eventos usando os métodos add_eventname e reomve_eventname nas classes Application e PageRequestManager. O exemplo a seguir mostra como adicionar um manipulador chamado MyLoad ao evento init do objeto Application.
Sys.Application.add_init(MeuInit);
function MyInit(remetente) {
}
Sys.Appplication.remove_init(MyInit
Comment); Este exemplo mostra apenas a sintaxe de uso dos métodos add_eventname e remove_eventname. Mais detalhes sobre como usar esse evento serão fornecidos em um tópico posterior.
Tratamento dos eventos de carregamento e descarregamento do aplicativo [Eventos de carregamento e descarregamento do aplicativo de operação]
Para operar os eventos de carregamento e descarregamento do objeto Aplicativo, não há necessidade de vincular explicitamente a um evento de operação. Em vez disso, você pode criar uma função diretamente usando as palavras-chave reservadas pageLoad e pageUnload. O exemplo a seguir mostra como adicionar uma ação ao evento de carregamento do Aplicativo.
function pageLoad(remetente, args) {
}
Eventos para Outras Classes de Clientes [Outras Classes de Clientes]
Este tópico descreve apenas eventos fornecidos pelas classes Application e PageRequestManager. A biblioteca de classes AJAX da Microsoft também inclui as seguintes classes para adicionar, limpar e remover eventos de elementos DOM. Essas classes incluem:
Existe o método Sys.UI.DomEvent.addHandler ou abreviatura $addHandler
Existe
o método Sys.UI.DomEvent.clearHandlers ou abreviatura $clearHandlers.
removeHandler.
Os eventos fornecidos pelos princípios do DOM não são discutidos neste tópico.
Eventos de cliente das classes Application e PageRequestManager [Eventos de cliente das classes Application e PageRequestManager]
A tabela a seguir lista os eventos de cliente das classes Application e PageRequestManager que você pode usar em páginas AJAX ASP.NET. A sequência de eventos será discutida em um tópico posterior.
Evento
(nome do evento)
Descrição
(descrever)
evento init
[Evento de inicialização]
Este evento é gerado após todos os scripts terem sido carregados e antes de qualquer objeto ser criado. Se você planeja escrever um componente (script), o evento init fornece um ponto no ciclo de vida para adicionar o componente (script) à página. Este componente pode ser chamado por outros scripts no ciclo de vida. Se você é um desenvolvedor web, na maioria dos casos, é recomendado usar o evento load em vez do evento init.
O evento init só é criado uma vez quando a página começa a ser gerada. As atualizações parciais subsequentes da página não acionarão o evento init.
carregar evento
[carregando evento]
Este evento é gerado após todos os scripts terem sido carregados e após todos os objetos de programa inicializados com $create terem sido criados. Este evento será gerado por todos os postbacks no servidor, incluindo postbacks assíncronos.
Se você é um desenvolvedor web, pode criar uma função chamada pageLoad, que é fornecida pelo próprio evento load. A operação pageLoad (manipulador) pode ser chamada após qualquer operação adicionada ao evento load por meio do método add_load.
O evento de carregamento requer um objeto Sys.ApplicationLoadEventArgs como parâmetro eventargs. Você pode usar esse parâmetro para decidir se a página precisa exibir uma atualização parcial e também pode decidir quais componentes devem ser criados após o último evento de carregamento ter sido acionado.
descarregar evento
[Evento de desinstalação]
Gerado antes de todos os objetos serem liberados e antes de ocorrer o evento window.unload do navegador.
Você pode manipular o evento unload por meio de uma função chamada pageUnload fornecida pelo próprio sistema. O evento pageUnload é chamado quando a página é descarregada no navegador. Durante este evento, devemos liberar todos os recursos ocupados pelo código.
Evento propertyChanged
[Evento de mudança de atributo]
Gerado quando as propriedades de um componente são alteradas. O objeto aplicativo herda esse evento da classe Component. Este evento só é gerado quando o desenvolvedor chama o método Sys.Component.raisePropertyChange ao definir um valor de propriedade.
Consulte Definindo propriedades de componentes personalizados e gerando eventos PropertyChanged para obter mais informações.
Os eventos de alteração de propriedade requerem um objeto Sys.applicationLoadEventArgs como parâmetro eventargs.
descartando Evento
[evento de lançamento]
Este evento é gerado quando a instância do aplicativo é liberada. O objeto aplicativo herda esse evento da classe Component.
Evento inicializeRequest
[Evento de solicitação de inicialização]
Este evento ocorre no início de uma solicitação assíncrona. Você pode usar esse evento para cancelar um postback tradicional, por exemplo, para permitir que um postback assíncrono tenha precedência.
O evento de solicitação de inicialização requer um parâmetro eventargs fornecido pelo objeto Sys.WebForms.InitializeRequestEventArgs. Este objeto fornece elementos úteis de objetos que causam postbacks e solicitações subjacentes. Este evento também expõe o atributo cancel. Se você definir cancelar como verdadeiro, um novo postback será cancelado.
Evento startRequest
[Iniciar evento de solicitação]
Esse evento é gerado antes do início de um postback assíncrono para o servidor. Se já existir um processo de postback, ele será interrompido (usando o método abortPostBack). Você pode usar este evento para definir cabeçalhos de solicitação ou exibir um prompt interessante (animação) na página para indicar que a solicitação está em andamento.
Este evento requer um objeto Sys.WebForms.BeginRequestEventArgs como parâmetro eventargs. Este objeto fornece elementos úteis para causar postbacks e objetos de solicitação subjacentes.
Evento de carregamento de página
[Evento de carregamento de página]
Gerado antes de qualquer conteúdo da página ser atualizado quando um postback assíncrono for recebido pelo servidor. Você pode usar esse evento para fornecer um efeito de transição personalizado para conteúdo que precisa ser atualizado.
Este evento requer um objeto Sys.WebForms.PageLoadingEventArgs como parâmetro eventargs. Este objeto fornece informações úteis sobre quais painéis serão excluídos e atualizados como resultado do postback assíncrono mais recente.
Evento pageLoaded
[Evento completo de carregamento da página]
Gerado depois que todo o conteúdo da página foi atualizado por um resultado de postback síncrono ou assíncrono. Durante o postback síncrono, os painéis só podem ser criados, mas durante o postback assíncrono, os painéis podem ser criados e atualizados. Você pode usar esse evento para gerenciar um efeito de alteração personalizado para conteúdo que precisa ser atualizado.
Este evento requer um objeto Sys.WebForms.PageLoadedEventArgs como parâmetro eventargs. Este objeto fornece informações úteis sobre quais painéis foram atualizados e criados durante o postback mais recente.
Evento endRequest
[evento de solicitação final]
Gerado após a conclusão de um postback assíncrono em resposta e a atualização da página ou após a ocorrência de um erro durante a solicitação. Se ocorrer um erro, a página não será atualizada. Use este evento para fornecer uma mensagem de erro personalizada aos visitantes ou fazer login no log de erros.
Este evento requer um objeto Sys.WebForms.EndRequestEventArgs como parâmetro eventargs. Este objeto fornece algumas informações úteis sobre o erro que foi gerado e se o erro foi tratado. Também fornece informações disponíveis sobre o objeto correspondente.
Exemplo de ordem de evento [Exemplo de ordem de evento]
O exemplo a seguir mostra como os eventos do lado do cliente serão gerados em uma página com dois controles UpdatePanel aninhados. Observe a diferença entre clicar no botão no painel pai e no botão no painel incorporado. O botão no painel pai fará com que o painel pai seja atualizado e o painel incorporado nele será excluído e recriado. Botões com painéis incorporados causam apenas atualizações no painel incorporado.
Código da página:
1<%@ Idioma da página="C#" %>
2
3 4 " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
5
6
9
10http://www.w3.org/1999/xhtml " >
11