Aldeia Numaboa
Um portal diferente em Português do Brasil
Informática da Aldeia

Tutoriais
Home Informática Tutoriais Webmaster AJAX em 30 segundos

Na Aldeia

Há 114 visitantes online

2796 registros
0 hoje
6 nesta semana
4 neste mês

Boas vindas: delilah

Estatística

Artigos: 848
Artigos lidos: 3919066
Arquivados: 41
Downloads: 416
Baixados: 161778
Glossário: 1198
Bibliografia: 24
JoomlaWatch Stats 1.2.7 by Matej Koval

Visitas de onde?

88,3%Brasil Brasil
9,2%Portugal Portugal
0,8%EUA EUA
0,2%Espanha Espanha
0,1%Alemanha Alemanha

Visitantes

Hoje: 484
Ontem: 1940
Esta semana: 2424
Semana passada: 12942
Este mês: 2424
Mês passado: 52379
Total: 123709

Registro/Login

Para fazer login ou registrar-se

Usuários registrados têm algumas regalias!

Ter

25

Abr

2006


09:16

AJAX em 30 segundos PDF Imprimir Indique esta página
Avaliação: / 9
PiorMelhor 
Tutoriais - Webmaster
Escrito por vovó Vicki   


Avançado Ultimamente fala-se muito sobre a tecnologia AJAX. Procurando artigos e tutoriais na rede, encontrei o texto do Rasmus Lerdorf, [url= HTTP://rajshekhar.net/blog/archives/85-Rasmus-30-second-AJAX-Tutorial.html]Rasmus' 30 second AJAX Tutorial[/url], um excelente tutorial que desmistifica o AJAX com espantosa simplicidade e clareza. Como este tutorial me ajudou nos primeiros passos, resolvi traduzí-lo na esperança de facilitar o começo de quem se interessar pelo assunto.

Diz o autor

Acho que uma porção de coisas do AJAX são um tanto exageradas. Muita gente tem usado coisas semelhantes muito antes de serem chamadas de "AJAX" e elas realmente não são tão complicadas como uma porção de gente faz parecer. Eis aqui um exemplo simples de uma das minhas aplicações. Primeiro o JavaScript:

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();

function sndReq(action) {
    http.open('get', 'rpc.php?action='+action);
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            document.getElementById(update[0]).innerHTML = update[1];
        }
    }
}

Isto cria um objeto de requisição juntamente com uma função de requisição de envio e uma que manipula as respostas. Para usá-las, é só incluir este JS na sua página. Depois, para fazer uma destas requisições de backend, basta amarrr o objeto a alguma coisa como um evento onclick ou um simples href como este:

<a href = "javascript:sndReq('foo')">[foo]</a>

Isto significa que, quando alguém clicar neste link, será enviada uma requisição backend para rpc.php?action=foo.

No rpc.php você pode ter algo como:
switch($_REQUEST['action']) {
    case 'foo':
      / fazer alguma coisa /
      echo "foo|foo feito";
      break;
    ...
}

Agora, dê uma olhada na handleResponse. Ela analisa a string "foo|foo feito" quebrando-a no '|'. Depois usa o que estiver antes do '|' como um elemento id do DOM da sua página e a parte depois do '|' como o novo innerHTML (conteúdo) deste elemento. Isto significa que, se você tiver uma tag div como esta na sua página:

<div id="foo">
</div>

assim que o link for clicado, isto será dinamicamente mudado para:

<div id="foo">
foo feito
</div>

E isto é tudo. Todo o resto é apenas construído sobre esta base. Você pode substituir minha sintaxe simples de resposta "id|texto" por um formato XML mais elaborado, como também pode transformar a requisição numa muito mais complicada. Antes de você instalar grandes bibliotecas "AJAX", teste as suas funções para saber exatamente como funcionam e as torne mais complicadas apenas na medida da sua necessidade. Com frequência você não vai precisar mais do que eu mostrei aqui.

Por exemplo, seria realmente muito simples expandir um pouco mais este modelo para poder enviar múltiplos parâmetros na requisição. Seria algo como:

function sndReqArg(action,arg) {
    http.open('get', 'rpc.php?action='+action+'&arg='+arg);
    http.onreadystatechange = handleResponse;
    http.send(null);
}

E sua handleResponse pode ser facilmente expandida para coisas muito mais interessantes do que simplesmente substituir o conteúdo de um div.

- Rasmus

Tradução: vovó Vicki

Última atualização ( Dom, 12.08.2007 20:35 )
 

Topo

Topo