Por Marco Aurélio Chilá
marcochila@uol.com.br
Desenvolvedor de soluções em ASP.NET utilizando VB.NET, C#, SQL Server e Javascript. Desenvolvo soluções para a plataforma Microsoft desde 1995 quando aprendí macros no Exército. Desde lá já passei pelo VB3, VB4 16 bits, Vb4 32 bits, VB5 CCe, VB5, VB6, .NET 2002, .NET 2003 e agora .NET 2005.

Ajax - Asynchronous JavaScript and XML - Um exemplo Simples


 Existem muitos artigos na internet sobre o que é o AJAX, quando surgiu etc. Não irei me preocupar com isso neste artigo. Neste artigo irei demonstrar, com exemplos como utilizar o AJAX sem o uso de nenhuma biblioteca pronta e utilizando o AjaxPro.NET (http://ajaxpro.schwarz-interactive.de/).

 

 Para que todos consigam entender como esse tipo de chamada funciona, é necessário um mínimo de conhecimento em Javascript e um conhecimento razoável em .NET. Irei utilizar VB.NET (Visual Studio .NET 2003) e para que todos consigam testar em suas máquinas, não farei acesso a nenhuma base de dados, nos exemplos de retorna de DataSet para o javascript iremos criar o DataSet via código.

 

- Casos em que o uso de AJAX agrega valor a uma aplicação.

 

  1 - Um exemplo clássico que costumo usar é quando temos dois DropdownLists, um com a lista de estados e outro com a lista de cidades. Neste caso e em todos os casos em que temos campos que devem ser preenchidos de acordo com o preenchimento de um outro o uso de AJAX é muito benéfico, tanto para o usuário quanto para o desenvolvedor. Para o usuário o ganho é claro, a página não será enviada ao servidor, será enviada somente uma requisição para uma função específica e isso vai dar muito mais velocidade à aplicação. Para o desenvolvedor o ganho, imaginando que nessa página não teríamos somente os dois dropdownlists de estado e de cidade, é que o desenvolvedor não teria que tratar nenhum campo para preencher algum outro dependente, formatar algum campo, consultar a base de dados para exibir algum valor que não foi alterado pelo usuário e situações do tipo.

 

  2 - Aplicações corporativas, com páginas extensas, ganham velocidade por que além de não haver o post da página, esse post caso acontecesse trafegaria muito mais informação do que o necessário.

 

  3 - Aplicações que realizam tratamento de informações e exibem ou ocultam itens em uma página, por exemplo, em um cadastro de clientes uma pessoa física tem como informação adicional os dados do cônjuge e uma pessoa jurídica ao invés disso tem a informação sobre os sócios. Nesse caso, vamos supor que quando a página foi aberta, não sabíamos qual era o tipo de cliente, física ou jurídica e que iremos realizar esse tratamento de acordo com o CNPJ/CPF digitado, se for CPF exibimos a opção de informação dos dados do cônjuge e não mostramos nada sobre sócios e se for jurídica realizamos o inverso.

 

  Esses são apenas alguns casos que são resolvidos de forma muito mais elegante e rápida usando o AJAX. É necessário que você avalie todos os pontos de sua aplicação Web para decidir aonde será utilizado AJAX e aonde será tratado por Post.

 

  Para os primeiros dois exemplos, iremos fazer usar o AJAX sem a ajuda de nenhuma biblioteca externa, para isso é necessário entender que entender algumas coisas:

 

  Para que um método javascript chame um método VB.NET dentro de uma página Vb.NET, tem que ter:

 

      - A página que contem os controles;

      - Uma classe separada que programe a interface IHttpHandler;

      - Uma página ASP.NET que manipulará essa chamada (arquivo com a extensão ASHX);

      - O código javascript que interceptará o evento desejado e chamará o método Vb.NET desejado; e

      - O Código javascript que irá tratar o retorno do método Vb.NET.

 

  - Segundo Exemplo - Chamando uma rotina AJAX, sem o uso de biblioteca que retorna um xml que será utilizado para preencher um dropdownlist.

 

            Para esse exemplo, muita coisa do nosso primeiro exemplo será reutilizada, apenas iremos mudar alguns nomes de arquivos e classes para que o nosso projeto contenha todos os códigos utilizados.

 

            Nosso primeiro passo é passar a utilizar a tela do segundo exemplo (SegundoExemplo.aspx). Nessa página iremos colocar quatro controles, dois  botões HTML, um dropdownlist html e um dropdownlist web.

 

            Essa página funcionará da seguinte maneira: Um botão html irá preencher o dropdownlist web e o outro  irá preencher o dropdownlist html.  Essa mistura é somente um exemplo do que podemos fazer ficando a cargo do desenvolvedor e de seus testes escolher qual a melhor solução para o sistema que está desenvolvendo. Um controle HTML é mais leve do que um web server control, que por outro lado, tem muito mais recursos e responde a mais eventos que o HTML.

 

Controles, tipos e nomes utilizados:

Tipo

ID

INPUT type="button"

btnWeb

SELECT

ddlHTML

INPUT type="button"

btnHTML

asp:DropDownList

ddlServer

 

 Se você utilizou os mesmos nomes que eu, sua página e código HTML devem se parecer com a figura abaixo:

Figura 12 - Exemplo da tela

Figura 13 - Código HTML

 

Figura 14 - O retorno da chamada preenchendo os dois combos.

 

            Como vocês puderam ver, é muito fácil e rápido desenvolver uma aplicação AJAX. Lógico que quanto maior a aplicação maior a dificuldade mas o AJAX nos ajuda e muito em certas tarefas de preenchimento de tela que teríamos que controlar no post da página.

 

 

 

Para maiores informações sobre as técnicas AJAX visite:

 

- http://ajaxpro.schwarz-interactive.de/

-http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/lifewithoutrefresh.asp

 

Dicas para quem está começando:
Veja os próximos eventos
que você não pode perder :

22/11/2008 SQL Launch -
Linhares - ES
Por : devASPNet


22/11/2008 SQL Launch- SQL Server 2008
Rio Paranaiba - Viçosa - MG
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Volta Redonda - RJ
Por : devASPNet


22/11/2008 SQL Launch- SQL Server 2008
Franca - SP
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Canoinhas - SC
Por : devASPNet


22/11/2008 SQL Launch - SQL Server 2008
Tefé - AM
Por : devASPNet


25/11/2008 SQL Launch - SQL Server 2008
Rio de Janeiro - RJ
Por : devASPNet


27/11/2008 SQL Lauch- SQL Server 2008
São Paulo - SP
Por : devASPNet


28/11/2008 SQL Launch - SQL Server 2008
São Paulo - SP
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Pedro Leopoldo - MG
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Petropolis - RJ
Por : devASPNet


29/11/2008 SQL Launch
Floriano - PI
Por : devASPNet


29/11/2008 SQL Launch - SQL Server 2008
Rio de Janeiro - RJ
Por : devASPNet


29/11/2008 SQL Launch - SQL Server 2008
Natal - RN
Por : devASPNet


29/11/2008 SQL Launch- SQL Server 2008
Santa Maria - RS
Por : devASPNet


29/11/2008 SQL Launch
Ituiutaba - MG
Por : devASPNet


5/12/2008 Cloud Computing e o Windows Azure
São Paulo - SP
Por : devASPNet


6/12/2008 SQL Server 2008 Community Launch
São Paulo - SP
Por : devASPNet

Leituras imperdíveis para quem está começando:

º Otimizando a performance no ASP.NET::..
º Criando objetos de paginação personalizados na grid::..
º Uma cesta de compras em ASP.NET::..
º Utilizando o Refresh de parâmetros no .NET::..
º ASP.NET FORMS Authentication::..
º Utilizando propriedades dinâmicas no .NET::..
º Corrigindo problemas de deleção em grid com paginação::..
º Cuidado com os componentes de validação::..
º Otimizando o InitializeComponent::..
º Movendo fonte de aplicações entre máquinas::..
º Agilizando a performance da IDE do VS.NET::..
º Utilizando Short Circuit no VB.NET::..


























  Parceiros:
20% de desconto para os membros do grupo na aquisição de livros e inscrição para eventos

Receba dicas de programação e programação .NET:
E-mail:
Incluir Excluir