Como o Ajax funciona

Postado em 10. out, 2009 por Chiavegatti em Ajax, Programação

Na linguagem javascript tradicional, quando você quer pegar alguma informação do banco de dados ou arquivo que está lá no servidor, ou então enviar alguma informação para o servidor, você precisar criar um formulário HTML e trabalhar com os métodos GET ou POST para pegar (get) ou enviar (post) dados para o servidor.

O usuário por sua vez, normalmente deve clicar no botão enviar para pegar ou enviar informações, esperar o servidor responder a requisição, e carregar a nova página com os resultados.
Por retornar uma nova página a cada vez que o usuário envia o formulário, as aplicações web tradicionais costumam ser lentas e pouco amigáveis, executando o re-carregamento da página a cada envio.
Com o Ajax, o Javascript é quem se comunica diretamente com o servidor, através do objeto XMLHttpRequest.

Com o HTTP request, a página web fica habilitada a fazer as requisições ao servidor, obter e enviar dados sem a necesidade de re-carregamento da página. O Usuário por sua vez permanece sempre na mesma página.

ajax

O usuário envia a requisição que deve ser executada e a resposta será exivida em uma camada identificada por um ID, sem recarregamento total da página em que o usuário está. Por exemplo uma div com o seguinte ID:

<div id="respostaAjax"></div>
A seguir você confere os próximos passos de como criar um objeto XMLHttpRequest e receber uma resposta do servidor.

1. Criando o objeto XMLHttpRequest

Browsers diferentes utilizam métodos diferentes para criar uma objeto XMHttpRequest. O Internet Explorer por explo usa o ActiveXObject, enquanto outros Browsers usam o objeto XMLHttpRequest.

Para criar este objeto, e para que ele funcione em todos os browsers, vamos trabalhar com um controle condicional conhecido como “try and catch”.

function ajaxFuncion()

{
var xmlHttp;
  try
{
// Opera 8.x , Firefox, Safari
xmlHttp = new XMLHttpRequest();
 }
catch(e)
 {
// Internet Explorer
try
{
xmlHttp=new ActiveXObject(”Msxml2.XMLHTTP);
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject(”Microsoft.XMLHTTP);
}
catch (e)
{
alert(“Seu browser não suporta Ajax!);
return false;
}
}
}

2. Envie uma requisição ao servidor.

Para enviar a requisição ao servidor usaremos dois métodos o open() e o send() .

O Método open() recebe normalmente 3 argumentos. O primeiro rgumento define qual o método usuaremos para enviar os dados ao servidor, se será pelo GET ou POST. O segundo argumento define qual é a página com script server-side que iremos usar para consumir a informação que queremos e o terceiro argumento define se iremos manipular os dados de forma assíncrona.

O método send() por usa vez envia a requisição ao servidor.

1
2
xmlHttpRequest.open(“GET”,”horas.asp,true);
xmlHttpRequest.send(null);

3. Escrevendo o script server-side.

O método responseText armazena a informação retornada do servidor. No caso estamos aguadando o retorno de uma página asp que nos fornece a hora atual. o Código que a página asp deve conter é o seguinte:

1
2
3
4
&lt;%
response.expires = now999
response.write (time)
%&gt;

4. Consumindo a resposta

Agora iremos consumir a resposta do servidor e exibir a informação para o usuário.

1
2
3
4
5
6
7
8
9
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4){
document.myForm.time.value=xmlHttp.responseText;
}
}
xmlHttp.open(”GET”,”horas.asp,true);
xmlHttp.send(null);
}
Related Posts with Thumbnails
  • Share/Bookmark

Tags: ,

Deixe um comentário

PHVsPjxsaT48c3Ryb25nPndvb19hZHNfcm90YXRlPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19hZF8yNTBfYWRzZW5zZTwvc3Ryb25nPiAtIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPjwhLS0NCmdvb2dsZV9hZF9jbGllbnQgPSBcInB1Yi0zNTE4NDExMjE1MjQzNjQwXCI7DQovKiAyNTB4MjUwLCBjcmlhZG8gMjkvMDkvMDkgKi8NCmdvb2dsZV9hZF9zbG90ID0gXCI1ODgyNDQ1ODE0XCI7DQpnb29nbGVfYWRfd2lkdGggPSAyNTA7DQpnb29nbGVfYWRfaGVpZ2h0ID0gMjUwOw0KLy8tLT4NCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCINCnNyYz1cImh0dHA6Ly9wYWdlYWQyLmdvb2dsZXN5bmRpY2F0aW9uLmNvbS9wYWdlYWQvc2hvd19hZHMuanNcIj4NCjwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkXzI1MF9pbWFnZTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTI1MHgyNTAuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfMjUwX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfYWRzZW5zZTwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2NvbnRlbnRfZGlzYWJsZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19hZF9jb250ZW50X2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfY29udGVudF91cmw8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmNoaWF2ZWdhdHRpLmNvbS5ici9ibG9nLzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTEuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMi5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8zPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0zLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTQuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV82PC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS00LmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3RvcF9hZHNlbnNlPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2Rpc2FibGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX2ltYWdlPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtNDY4eDYwLTIuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfdG9wX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuY2hpYXZlZ2F0dGkuY29tLmJyL2Jsb2cvPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzE8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmNoaWF2ZWdhdHRpLmNvbS5ici9ibG9nLzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8yPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5jaGlhdmVnYXR0aS5jb20uYnIvYmxvZy88L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMzwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuY2hpYXZlZ2F0dGkuY29tLmJyL2Jsb2cvPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzQ8L3N0cm9uZz4gLSBodHRwOi8vd3d3LmNoaWF2ZWdhdHRpLmNvbS5ici9ibG9nLzwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF81PC9zdHJvbmc+IC0gaHR0cDovL3d3dy5jaGlhdmVnYXR0aS5jb20uYnIvYmxvZy88L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfNjwvc3Ryb25nPiAtIGh0dHA6Ly93d3cuY2hpYXZlZ2F0dGkuY29tLmJyL2Jsb2cvPC9saT48bGk+PHN0cm9uZz53b29fYWx0X3N0eWxlc2hlZXQ8L3N0cm9uZz4gLSBibHVlLmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dG9faW1nPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jYXRfZXg8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jb21tZW50X3Bvc3RzPC9zdHJvbmc+IC0gU2VsZWN0IGEgbnVtYmVyOjwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRlbnQ8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRlbnRfYXJjaGl2ZXM8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX2NvbnRlbnRfZmVhdDwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSAvZmF2aWNvbi9mYXZpY29uLnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlYXR1cmVkX3Bvc3RzPC9zdHJvbmc+IC0gMzwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfaWQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19mZWVkYnVybmVyX3VybDwvc3Ryb25nPiAtIGh0dHA6Ly9mZWVkcy5mZWVkYnVybmVyLmNvbS9DaGlhdmVnYXR0aTwvbGk+PGxpPjxzdHJvbmc+d29vX2dvb2dsZV9hbmFseXRpY3M8L3N0cm9uZz4gLSA8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj4gDQp2YXIgZ2FKc0hvc3QgPSAoKFwiaHR0cHM6XCIgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gXCJodHRwczovL3NzbC5cIiA6IFwiaHR0cDovL3d3dy5cIik7DQpkb2N1bWVudC53cml0ZSh1bmVzY2FwZShcIiUzQ3NjcmlwdCBzcmM9XCdcIiArIGdhSnNIb3N0ICsgXCJnb29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qc1wnIHR5cGU9XCd0ZXh0L2phdmFzY3JpcHRcJyUzRSUzQy9zY3JpcHQlM0VcIikpOw0KPC9zY3JpcHQ+DQo8c2NyaXB0IHR5cGU9XCJ0ZXh0L2phdmFzY3JpcHRcIj4NCnRyeSB7DQp2YXIgcGFnZVRyYWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKFwiVUEtNjE3NDExMS0xXCIpOw0KcGFnZVRyYWNrZXIuX3RyYWNrUGFnZXZpZXcoKTsNCn0gY2F0Y2goZXJyKSB7fTwvc2NyaXB0PjwvbGk+PGxpPjxzdHJvbmc+d29vX2hvbWVfYXJjPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2xpbms8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29faG9tZV9saW5rX2Rlc2M8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX2xpbmtfdGV4dDwvc3Ryb25nPiAtIEhvbWU8L2xpPjxsaT48c3Ryb25nPndvb19ob21lX3RodW1iX2hlaWdodDwvc3Ryb25nPiAtIDkyPC9saT48bGk+PHN0cm9uZz53b29faG9tZV90aHVtYl93aWR0aDwvc3Ryb25nPiAtIDI0NzwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX2hlaWdodDwvc3Ryb25nPiAtIDIxMDwvbGk+PGxpPjxzdHJvbmc+d29vX2ltYWdlX3NpbmdsZTwvc3Ryb25nPiAtIGZhbHNlPC9saT48bGk+PHN0cm9uZz53b29faW1hZ2Vfd2lkdGg8L3N0cm9uZz4gLSA1NDA8L2xpPjxsaT48c3Ryb25nPndvb19sb2dvPC9zdHJvbmc+IC0gL2ltYWdlbnMvd3Bsb2dvLnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX21hbnVhbDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9zdXBwb3J0L3RoZW1lLWRvY3VtZW50YXRpb24vYnVzeS1iZWUvPC9saT48bGk+PHN0cm9uZz53b29fcG9wdWxhcl9wb3N0czwvc3Ryb25nPiAtIDI8L2xpPjxsaT48c3Ryb25nPndvb19yZXNpemU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fc2hvcnRuYW1lPC9zdHJvbmc+IC0gd29vPC9saT48bGk+PHN0cm9uZz53b29fc2luZ2xlX2hlaWdodDwvc3Ryb25nPiAtIDEyMDwvbGk+PGxpPjxzdHJvbmc+d29vX3NpbmdsZV93aWR0aDwvc3Ryb25nPiAtIDE4MDwvbGk+PGxpPjxzdHJvbmc+d29vX3RhYnM8L3N0cm9uZz4gLSBmYWxzZTwvbGk+PGxpPjxzdHJvbmc+d29vX3RoZW1lbmFtZTwvc3Ryb25nPiAtIEJ1c3kgQmVlPC9saT48bGk+PHN0cm9uZz53b29fdGh1bWJfaGVpZ2h0PC9zdHJvbmc+IC0gODg8L2xpPjxsaT48c3Ryb25nPndvb190aHVtYl93aWR0aDwvc3Ryb25nPiAtIDg4PC9saT48bGk+PHN0cm9uZz53b29fdHdpdHRlcjwvc3Ryb25nPiAtIGNoaWF2ZWdhdHRpPC9saT48bGk+PHN0cm9uZz53b29fdmlkZW9fY2F0ZWdvcnk8L3N0cm9uZz4gLSBTZWxlY3QgYSBjYXRlZ29yeTo8L2xpPjwvdWw+