Ajax também enfrenta problemas. Veja quais são.

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on pocket

Cinco meses após o primeiro artigo sobre Ajax (“Não é tecnologia, é um jeito”, veja ao lado) muita coisa aconteceu e já há uma maturidade maior para se falar sobre isso. Antes de mais nada:

Ajax veio pra ficar

Quando falamos de web 2.0, falamos em serviços na internet, softwares na internet. Ora, isso é completamente inviável sem Ajax ou algo parecido. Quer dizer, na verdade, existem centenas de tecnologias pra se fazer softwares na web, de “JavaApplets” (que o Box.net usa de forma linda, no qual se pode arrastar e soltar uma pasta do computador para a internet). Existem também plugins. Isso é muito antigo. O Ajax foi a primeira tecnologia a aparecer com uma solução nativa do navegador. Sem precisar instalar nenhum plugin.

Além disso, o passo que nós já demos em direção à web 2.0 não pode ser desfeito. Seja com Ajax ou alguma tecnologia similar, jamais se deve deixar uma página ser recarregada a cada comando que o usuário dá.

Algumas utilidades já consagradas para o Ajax

Algumas coisas que podem ser feitas com Ajax têm o poder de viabilizar vários sites e novos serviços que estão aparecendo por aí. Vamos tentar relacionar algumas destas competências:

Interface numa única página. Sem recarregar a página a cada comando, é possível fazer softwares na internet com performance semelhante à do software local. Isso não era possível antes − embora as tecnologias que compõem o Ajax estejam aí há muito tempo, este jeito de pensar em desenvolvimento web é muito novo.

Arrastar e soltar. Você já imaginou um sistema operacional como o Windows sem o recurso de arrastar e soltar? A internet era mais ou menos assim. Agora, com o Ajax, ficou fácil trabalhar com arquivos (como o Box.net), com blocos de informação configuráveis (como o Netvibes), entre várias outras funcionalidades que só apareceram na internet quando se tornou possível arrastar e soltar.

Páginas mais rápidas. Quem não sabe disso, né? A função principal do Ajax é deixar tudo mais rápido. Sem esperar tudo recarregar, a gente consegue induzir o usuário a fazer coisas que de outra forma ele jamais faria, por preguiça ou falta de tempo. Novamente o mesmo exemplo: eu teria preguiça de clicar em um formulário de contato se souber que vai demorar para carregar. Mas não teria se fosse instantâneo. Qual é a diferença aqui? Um site com Ajax dá mais retorno − teoricamente.

Maior capacidade de personalização. Com Ajax se tornou possível fazer um site e deixar cada usuário remoldá–lo como quiser. Antes já era possível? Sim, era. Mas era terrívelmente difícil. Agora basta clicar em um link “edit” em algum canto, clicar num comando e está pronta a mudança no site. Ou clique em um conteúdo e arraste para outro lugar. Ou clique em um botão de avaliação sem precisar parar de ler a notícia… Enfim, sem espera, sem chateação, deixe o site do jeito que você quiser.

Essa lista poderia continuar, porém o mais importante está aí. Além do mais, trabalhando na minha empresa (Desta.ca) com Ajax tenho tido algumas dores de cabeça e percebo que a maioria dos programadores ao redor do mundo tem os mesmos problemas… Quero falar um pouco sobre isso.

Alguns problemas relacionados ao Ajax

Uma tecnologia tão nova não poderia deixar de ter problemas. Estes problemas acontecem ou pela falta de maturidade da tecnologia e conhecimento dos programadores que estão começando a trabalhar com isso, ou porque a própria internet não está totalmente pronta para essa revolução.

Aí vão algumas preocupações e problemas, classicamente apontados quando se trata de Ajax. Vou chamá–los, carinhosamente de bichos–papões do Ajax.

1. Favoritos. Se a interface do seu site é toda em uma página só, como o usuário vai guardar um determinado artigo nos seus favoritos? Como ele vai enviar este conteúdo para um amigo? A falta de um link permanente (problema também quando se faz um site todo em Flash) é um monstro. Porque um dos corações da web 2.0 são os blogs… Como eu vou falar no meu blog sobre um artigo, video, áudio ou qualquer conteúdo, sem ter um link direto para ele? Cada programador está procurando sua própria solução, mas nós temos que procurar padrões para essas soluções. Assim a tecnologia vai ter maturidade mais rápido.

2. Botão Voltar. O que acontece quando você clica no botão Voltar em um site Ajax? Hoje temos duas opções (fora as gambiarras com programação suja): ou não acontece nada, ou não volta para o lugar que você queria. Acontece que os navegadores não têm um evento para o programador dizer o que acontece na sua página quando o usuário clica Voltar. O máximo que o navegador consegue dizer é que o usuário saiu da página. E aí, recomendamos ao usuário não clicar no botão Voltar e damos o problema por resolvido?

3. Recarregar. Acontece a mesma coisa com o botão Recarregar. O navegador só entende que o usuário saiu da página… mas recarregar uma página e voltar para a anterior são ações muito diferentes. Por que o navegador não tem “eventos” para os botões Voltar e Recarregar? Simplesmente porque antes não era preciso. Agora, com Ajax, é preciso. Novamente, alguns programadores fazem gambiarras (como iframes escondidos, que causam um mooonte de bugs no sistema) para driblar esses problemas. Mas é preciso uma solução padronizada, simples e limpa para isso.

4. Compatibilidade entre navegadores. Pelo tamanho do nome já se vê que esse deve ser um mostro enorme, que sai de baixo da cama quando os programadores apagam a luz em seus quartos. Realmente, é um problemão programar em JavaScript pensando nas frescuras de um browser e de outro. Tableless não resolve o problema, cada browser interpreta CSS de um jeito. O Internet Explorer tem um monte de bugs ao trabalhar com Javascript (por exemplo, às vezes quando se escreve um código, ele simplesmente “esquece” de passar um parâmetro). Os programadores ficam loucos com isso. Isso aumenta o custo do produto final e deixa todo mundo bravo.

5. Segurança. Quando você faz um monte de processos pelo lado do cliente, e não no servidor, se o programador não for bom, pode ser abertas brechas enormes de segurança. A tecnologia ainda não tem padrões muito bem definidos para segurança quando se trata de Ajax. Por enquanto eu não ouvi falar de nenhum problema sério, mas os programadores têm um pouco de medo quanto a isso.

A comunidade continua trabalhando. A internet está mudando. O mundo todo está mudando. Basta ter paciência para ver a maturidade dessa tecnologia chegar e todo mundo ser mais produtivo. Um pouco de boa vontade do pessoal dos navegadores, um pouco de boa vontade dos programadores em compartilhar as soluções e todos poderemos dormir um pouco mais tranqüilos. [Webinsider]

Avatar de Gilberto Alves Jr.

Gilberto Jr (gilbertojr@gmail.com) tem experiência no mercado digital como designer de produtos, fundador de duas startups, gerente de projetos em agências digitais e gerente de produto no Scup. Agora procura um novo desafio. Veja mais no Linkedin.

Share on facebook
Share on twitter
Share on linkedin
Share on whatsapp
Share on telegram
Share on pocket

5 respostas

  1. Bom dia Gilberto.
    Estou trabalhando em uma empresa onde o programador já tem um sistema pronto, só preciso ajudar a gerar relatórios.
    Ele pediu que eu colocasse aqueles calendários em JQuery nos campos de data dos relatórios.
    O problema é que o sistema tem chamadas em ajax… Clico no link relatórios, faz uma chamada em ajax para outra tela, que aparece ao lado da tela principal. Nessa tela aparece uma listagem de “categorias” e quando clico em uma dessas categorias aparece outro grupo de subcategorias em uma outra listagem ao lado. Quando clico em uma subcategoria dessa outra listagem, abaixo abre uma outra janela com campos para pesquisa. Clico no campo data e abre o meu calendário em JQuery… O problema é que quando clico em uma categoria ou outra subcategoria e O calendário não abre mais nos outros campos de data, só s eu der um refresh na página toda, você me entende? Acho que as chamadas em ajax, de alguma forma, estão “matando” o calendário em JQuery.
    Obrigado pela atenção.

  2. Parabéns pela matéria ! Muito interessante !
    Gostaria de poder receber material sobre as incompatibilidades dos navegadores atuais para roderem o AJAX. Estou fazendo um trabalho na faculdade sobre o assunto.
    Se alguem poder me ajudar nisso, desde já agradeço muito !

  3. Programo em Ajax, eu não vejo muito problemas, isto varia muito do programador, tem que se expert mesmo, questão de segurança e evitar bugs ao carregar o javascript, faço de tudo, e nunca acontece problema com meus sites, para quem interessa, acho uma boa investir.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *