O que é ajax, e o que não é?
Do começo e com as minhas palavras:
AJAX
é mais simples do que parece. A grosso modo, não temos refresh(próprio das requisições HTTP comuns) para trazer respostas do servidor. O ponto importante a notar aqui, é que enviamos informações, e teremos um retorno(mesmo funcionamento de uma requisição HTTP).
Esse retorno, pode vir ‘formatado’ (jSON, XML, HTML…), mas ainda assim é apenas texto puro. Não é retornado por exemplo ‘um array php, ou uma variavel’, mas sim um texto puro(o output dessa variavel, desse array…).
Alguns conceitos e definições:
JavaScript é uma linguagem de script client-side;
FrameWorks são um conjuntos ‘de códigos’ que devem facilitar o desenvolvimento de rotinas especifícas ou aplicações completas;
jQuery É apenas um FrameWork(dentre muitos) escrito sob a linguagem JavaScript.
AJAX É a reunião de várias tecnologias, formando uma metodologia de desenvolvimento.
DOM é uma especificação que não depende de linguagem nem plataforma. Um padrão de acesso aos documentos, e por consequência aos elementos dele.
Vou me ater ao nosso contexto, conheço as definições completas de cada um dos termos.
Antes de falar sobre Onde usar e onde não usar AJAX?, alguns desenvolvedores precisam entender o que é ajax, e o que não é.
Enquanto ainda estamos manipulando o DOM, não estamos lidando com ajax ainda. Se podemos trazer o conteúdo já na carga do documento, então devemos fazer da forma simples.
Leia a palavra ‘ajax’ como ‘requisição’.
Se tem ‘requisições’ na jogada então talvez, você tenha ajax. Se não tem, e nem precisa requisitar nada ao servidor, então não temos ajax.
Precisa de alguma informação que só a tua linguagem server-side, pode dar ? Necessita disso sem um refresh da tela? Se não puder trazer essa informação já na tela, ai sim, você precisa de ajax.
Não existe uma ‘forma ajax’ de resolver. O correto é analisar se vale a pena usar ou não, se era necessário, se encaixa no teu contexto…
Ajax não são efeitos. Não é qualquer coisa que não faça refresh. Ajax não é a solução para tudo.. Ajax não substitui o flash. Ajax não envia arquivos. Ajax sozinho não faz barras de loading…. Ajax não é jQuery. jQuery não é Ajax. Não é uma linguagem, nem sub-linguagem (ouvi essa no forum). Não é cálculo entre inputs’(se não depender de informações de um banco de dados por exemplo). Não é Drag And Drop. Não faz slideshow…
Use ajax onde você não puder fazer da forma convencional, e ainda assim, deixe funcionando, mesmo que o usuário não tenha suporte a javascript.
Ajax pode ser usado para enriquecer e muito a experiência do usuário. Ajax é melhorar a usabilidade da sua aplicação. Ajax é não obrigar o cliente, a descarregar todo um conteúdo estático, que não ia sofrer alteração, apenas para enviar e receber uma resposta simples do servidor. Ajax é uma forma de interagir mais, de tornar as tuas páginas web, mais próximas das aplicações desktop. Ajax é economia de banda se bem usado. Ajax é composto por várias tecnologias. Ajax é um conceito.
Na verdade, no fundo no fundo, ajax é fazer uma requisição assíncrona ou não. E dela trazer um retorno, sem depender do refresh da tela. É isso. Mas muitos usam de forma errada. Abusam onde não deveriam, confundem…
E de novo, começam a querer usar, sem conhecer as linguagens base pelas quais todo o processo é feito.
Ajax é perigoso. Se mal usado, pode comprometer todo o site, toda a aplicação, deixar tudo mais lento, detonar a banda, expor o sistema… Não é culpa da linguagem javascript, mas sim da forma com que estão fazendo os sistemas hoje em dia. É client-side galera !! Acordem!
Possui vulnerabilidades por estar exposto, tudo porcamente programado, é vulnerável. AJAX bem feito e bem usado, só trás benefícios. A antítese também é verdadeira:
AJAX mal feito e mal usado, só trás problemas!
AJAX pode ser muito melhor e muito mais. Entretanto, é preciso ter bom senso de saber os locais certos, onde se deve ou não aplicar.