| 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 |

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/