Ajax

23 respostas
ricardolecheta

Estava olhando este artigo:
http://java.sun.com/developer/technicalArticles/J2EE/AJAX/?feed=JSC

Fiz um exemplinho, para quem quiser testar, segue o fonte:

public class HelloServlet extends HttpServlet {

	/**
	 * @see javax.servlet.http.HttpServlet#doGet(javax.servlet.http.HttpServletRequest,
	 *      javax.servlet.http.HttpServletResponse)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		String msg = "invalid";
		String id = request.getParameter("id");
		if (id.indexOf("ricardo") != -1 || id.indexOf("lecheta") != -1) {
			msg = "OK";
		}

		response.setContentType("text/xml");
		response.setHeader("Cache-Control", "no-cache");
		response.getWriter().write("<message>" + msg + "</message>");
	}
}
<html>
<head>
<script type="text/javascript">
var req;

function validate() {
    var idField = document.getElementById("userid");
    var url = "HelloServlet?id=" + escape(idField.value);
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    req.open("GET", url, true);
    req.onreadystatechange = callback;
    req.send(null);
}

function callback() {
	//alert('callback' + req.readyState);
    if (req.readyState == 4) {
        if (req.status == 200) {
            // update the HTML DOM based on whether or not message is valid
			parseMessage();
        }
    }
}
function parseMessage() {
    var message = req.responseXML.getElementsByTagName("message")[0];
    setMessage(message.childNodes[0].nodeValue);
}
 function setMessage(message) {
     var userMessageElement = document.getElementById("userIdMessage");
     var html = "<font color=\"red\">" + message + "</font>";
	 //testar se é diferente para não atualizar desnecessariamente
 	 if(html != userMessageElement.innerHTML){
		userMessageElement.innerHTML = html;
	 }
 }
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
UserName: 
&lt;input type="textfield" 
              id="userid"
              name="userid"
         onkeyup="validate();"&gt;

&lt;div id="userIdMessage"&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;

23 Respostas

Z

Incrível como uma ferramenta que proporciona uma melhora tão grande em aplicações demorou pra “pegar”.

Antes do Google fazer suas coisinhas usando XMLHttpRequest, uns ou outros faziam uso do AJAX, a maioria até usando hidden frames. Mas agora, depois de Gmail, Google Suggest e etc., Ajax virou moda.

Falando em Ajax, não tinham um acrônimo pior não? :smiley: Chegar pra um cara, perguntar se ele conhece Ajax e receber “time da Holanda? Conheço…” é dose. Hehe.

Rafael_Steil

http://dwr.dev.java.net :mrgreen:

Rafael

Mauricio_Linhares

ZehOliveira:

Falando em Ajax, não tinham um acrônimo pior não? :smiley: Chegar pra um cara, perguntar se ele conhece Ajax e receber “time da Holanda? Conheço…” é dose. Hehe.

Sobre o acrônimo “nadas-haver” o David Flanagan já deu a sua alfinetada:

http://www.davidflanagan.com/blog/2005_03.html

E eu acho que deviam usar outro nome mesmo, esse aí tá muito esquisito.

Z

É… e como foi dito pelo David Flanagan, principalmente quando o dado obtido pelo request não é XML (e tem sido assim nas aplicações que eu venho fazendo).

Se não é Xml, então não é Ajax? Unxi. :frowning:

Diogenes

É incrível como eles amam criar novos acrônimos para velhas coisas, criando assim revolucionárias coisas novas, e claro, maravilhosas™!!!

Hilário…

louds

Eu uso isso desde 2003 de forma retardada e nunca chamei de AJAX.

O problema é que conforme você vai aumentando os “truques” vai ficando exponencialmente mais dificil testar e manter. Pelo menos foi essa minha conclusão de uma aplicação com um framework de mais de 6mil linhas de js e uns cento tantos em cada página.

Diogenes

:shock:

Tú utilizava hidden-frames?
Imagino o trabalho para achar um erro de sintaxe num bichinho desses!

Éco!

louds

Não, XmlRequest mesmo.

cv1

Bons tempos aqueles, alias, hein louds?

*** bebe mais uma cerveja pra tentar esquecer os bugs

Eh… vidao :mrgreen:

F

Olá,

Pessoal, hoje pra onde o cara olha tem gente falando em AJAX, ta virando moda as respostas em todos foruns serem AJAX. Ja li alguns posts no GUJ e no JF, alguns artigos espalhados pela Net, mas nao cheguei a uma opiniao formada, até porque nunca usei em nenhum projeto prático.

Já vi pessoas que falam bem, outras dizem que isso cheira muito mal. Algumas dizem que depende do tamanho do projeto. Mas a final AJAX é bom, pode ser bom, mas pode virar problema, o que voces acham?

O UIX da Oracle usa muito disso, mas o cara nem ve pq as telas sao feitas no editor grafico (argh), agora fazer tudo na mao, sera que pode virar um bomba em curto espaco de tempo?

]['s

T

Se fizer na mão, acho que o Ajax é receita para problemas de manutenção. É que todas aquelas coisas esquisitas que ocorrem em aplicações Desktop (eventos que ocorrem quando você não espera, etc.) vão começar a acontecer em sua aplicação Web, mas aí você perdeu o controle completamente por falta de um framework que esconda isso um pouco.

cv1

Qualquer coisa pode virar uma bomba em um curto espaco de tempo - por exemplo, o UIX :slight_smile:

louds

Ajax funciona legal em aplicações enormes, o problema é a quantidade de “firula” que você vai querer.

F

Hm entao tu diria que o problema nao é exatamente o “AJAX”, mas sim a quantidade de possibilidades que ele da acaba por deixar a complexidade alta demais. Como disse o Thingol, a quantidade de eventos e possibilidades acaba crescendo muito.

É interessante esse ponto.

]['s

Z

Mas que facilita a usabilidade e, por consequencia, a vida do usuario… facilita sim.

Se pra fazer algo que melhora a usabilidade, voce acaba deixando o codigo porco… eh hora de comecar a pensar em um jeito de melhorar o codigo. Aí é que entra toda essa discussão (Toda não, pq boa parte é só “oh… vejam como isso eh lindo”).

Diogenes

O problema maior q vejo eh a diferenciaçao no que deve ser um processamento síncrono e o q deve ser um processamento assincrono pra sua aplicacao.

O tratamento dos dois tipos é variavel em tamanho e na complexidade agregada a aplicacao.

Mas sem dúvida é divertido, e de acordo com as ferramentas q vc utiliza fica mais tranquilo de brincar:

<%=link_to_remote("bulufar",
                         :update => "divBulufas",
                         :url =>{ :action => :bulufar })%>
apocalipse

Salve Galera

Como disse nos post passados sou iniciante, então…

Bom, como disse o cv, “Qualquer coisa pode virar um bomba”, mas creio que isso seja fruto da falta de um projeto. Estava lendo um livro sobre design e um dos assuntos tratados era o aproveitamento do espaço, ou seja, não teve um projeto. Isso em sites com grande acesso. Outro ponto abordado era a facilidade de acessar áreas destinadas a assinantes, novamente a falta de um projeto. Então, como disse, creio que tudo pode virar uma bomba se não houver um projeto antes.
Estava vendo uma coisa muito interessante, outro dia, que era, não sei com o Ajax é possível ou se faz isso, para falar a verdade não tenho muito tempo de ler, então infelizmente estou conhecendo o termo agora, mas a possibilidade de chamar functions sem ter que recarregar a pagina, o que torna uma aplicação, aos olhos do usuário, muito interessante.
Sabem como é o cliente tem sempre razão. Pode estar errado, mas tem.
Fazer o que?!
Bom é isso ae.

Apocalipse

cv1

apocalipse (belo nome, seus pais tem bom gosto :mrgreen:), o ponto todo do AJAX eh justamente esse - tornar a UI mais dinamica, o que inclui evitar refrescar a pagina inteira quando tudo que vc quer eh atualizar um divzinho :slight_smile:

F

Com certeza, pode ter todo o problema de ficar complexo, mas que é lindo é lindo mudar a informacoes da tela sem dar f5 e o usuario ficar com aquela cara de “ué como isso”…:mrgreen:

]['s

Fabricio_Cozer_Marti

Realmente isso faz uma diferenca grande, pra um cliente.
Basta comparar uma pagina que tem varios requests/responses com esse
dinamismo. Duvido que um cliente não chore de emoção. hehe
Mas nunca utilizei … vou dar uma olhada … gostei :wink:

apocalipse

Salve galera

Alguem tem exemplos de Ajax, que possa enviar por email.

E-Mail [email removido]
[email removido]

Valeu

Apocalise

Diogenes

tem…

http://del.icio.us/tag/ajax
http://www.google.com/search?q=ajax

[size=6]Ps.: Depois o povo pergunta: “Pq serah q eu fico recebendo esse tanto de lixo na minha caixa de emails?”[/size]

ricardosoares

Tenho estudado um framework web com Ajax, parece-me bem interessante e muito mais simples que o JSF.
O ZK 1.1 ainda está amadurecendo. Não tem MVC mas pode ser usado com o Spring .
Na página tem Live Demo, vale a pena ver. Os componentes “Sandbox” e “Live Listbox” fazem a aplicação parecer ser desktop.

Abraços

PS: É open source.

Criado 11 de junho de 2005
Ultima resposta 27 de mar. de 2006
Respostas 23
Participantes 12