Nesse artigo vou mostrar como usar AJAX com ASP. Não é muito comum (pelo menos por enquanto), porém muito útil. Passarei um exemplo bem simples onde, a partir dele, vocês podem começar a estudar mais a fundo AJAX. Vamos lá!
Crie uma página onde tenha um botão, por exemplo. Nesse botão, você chamará uma função chamada enviaPage(), para enviar os dados via GET, mas vocês podem usar qualquer outro tipo de função que acharem melhor. É que, no caso, eu utilizo funções diferentes para enviar dados via GET e via POST.
<input type="button" name="excluir" value="Excluir id 21" onclick="enviaPage('excluir.asp', 'GET', 'true', 'conteudo','action=excluir&id=21')">
A função que citei, enviaPage(), concatenará os parâmetros com a url e colocará um Math.random(), que evita que fique no cachê.
<script>
function enviaPage(url, metodo, modo, tagId, parametros)
{
goAjax( url+"?"+parametros+"&rnd"+ Math.random() , metodo, modo , tagId);
}
</script>
Agora, vem toda a função Ajax, que será responsável por tudo.
function goAjax(url, metodo, modo, tagRetorno, parametros) {
document.getElementById(tagRetorno).innerHTML='<div align="center" class="carregando"><img src="../images/carregando.gif"><br /><br />carregando...</div>'
if(metodo == "GET") {
xmlhttp.open("GET", url, modo);
} else {
xmlhttp.open("POST", url, modo);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");
xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
xmlhttp.setRequestHeader("Pragma", "no-cache");
}
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4) {
retorno=xmlhttp.responseText
document.getElementById(tagRetorno).innerHTML=retorno
findScript(retorno)
}
}
if(metodo == "GET") {
xmlhttp.send(null);
} else {
xmlhttp.send(parametros);
}
}
Vamos desenvolver a página asp, que realizará a exclusão dos registros, por exemplo. Veja que essa página é aquela que informa no botão, quando passo os parâmetros, enviando o retorno para a div que especifiquei no botão, que é o conteúdo.
<%
action = request("action")
id = request("id")
if action = 'excluir' then
'exclui id tal
ok = true
end if
response.write "<script>enviaPage('OK.asp', 'GET', 'true', 'mensagem','ok="& OK &" ');<script>"
%>
Percebam que o exemplo que passei é bem simples mesmo, como eu já tinha dito. E a partir disso, dá para vocês começarem a desfrutar e inventar mais coisa de ASP com AJAX. É uma forma de desenvolver sem recarregar determina página, e consome menos do servidor. Será muito utilizado futuramente. No próximo artigo, vou mostrar mais sobre como usar ASP com AJAX e sua utilização.
Viu como é fácil? Até o próximo artigo.
Você poderia entrar mais em detalhes sobre este assunto, embora eu ache que ajax não passe muito disso mas derrepente eu esteja errado, parabéns pela matéria.
Responder comentárioConcordo plenamente com o Cristino, apesar de começar a estudar agora o AJAX achei que a materia esta muito pouco detalhada e faltando trechos.
Para quem esta começando esta materia não ajuda muito.
Continue assim!
Matéria muito boa!
Muito boa esta matéria.
Realmente, AJAX não passa muito disso.
Dá pra implementar melhor algumas coisas descritas aqui, mas tá muito boa. Parabéns pela interação do próprio portal com AJAX
bom ajax nao passa disto, mas existem coisas q tem q ser comentadas, como o Contet-type caso seja um .aps
os expires e talz
mas parabens ^^
Muito bueno o artigo, para se entender a raiz do funcionamento, porém hj em dia é muito mais fácil você utilizar um framework como ajaxbox.com.br ou script.aculo.us . mas ta bueno... valeus
Responder comentárioNão consegui colocar p funcionar, nesta parte mesmo do agora vem a função AJAX, onde coloco isso ?
Acredito que este artigo seja p quem queria iniciar, nao p quem ja conhece.
function goAjax(url, metodo, modo, tagRetorno, parametros) {
document.getElementById(tagRetorno).innerHTML='<div align="center" class="carregando"><img src="carregando.gif"><br /><br />carregando...</div>'
function createXMLHTTP()
{
try
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
try
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
alert(ajax);
}
catch(ex)
{
try
{
ajax = new XMLHttpRequest();
}
catch(exc)
{
alert("Esse browser não tem recursos para uso do Ajax");
ajax = null;
}
}
return ajax;
}
var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"];
for (var i=0; i < arrSignatures.length; i++) {
try { var oRequest = new ActiveXObject(arrSignatures[i]);
return oRequest;
} catch (oError) {
}
}
throw new Error("MSXML is not installed on your system.");
}
var xmlhttp = createXMLHTTP();
if(metodo == "GET") {
xmlhttp.open("GET", url, modo);
} else {
xmlhttp.open("POST", url, modo);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");
xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
xmlhttp.setRequestHeader("Pragma", "no-cache");
}
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == 4) {
retorno=xmlhttp.responseText
/*var element = getObj(tagRetorno) */
document.getElementById(tagRetorno).innerHTML=retorno
findScript(retorno)
}
}
if(metodo == "GET") {
xmlhttp.send(null);
} else {
xmlhttp.send(parametros);
}
}
Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
Rafael Martin possui experiência em desenvolvimento de sistemas web e softwares, principalmente nas linguagem ASP, VB6, Javascript, CSS, XML, HTML, DHTML e ASP.Net (VB.Net e C#), Crystal Reports; banco de SQL Server, MySQL e Access.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.