Professional Documents
Culture Documents
Contrasea
Usuario
Entrar
o registrate
Buscar..
Publicauntutorial
QuesCristalab?
Tags
Ququieresbuscar?
Ejemplos
Contctanos
Buscar
Tutoriales / TutorialdeAJAX
TutorialdeAJAX
PorSisco el18deMarzode2006 con569,786visitas
HTML,CSSyJavascript OtrostutorialesporSisco.
26
Like
16
Tw ittear
AJAX(AsynchronousJavascriptandXML)traducidocomoindicaelttulo,noesmsqueunaformadeprogram
aplicacionesinteractivasparaweb.EstaevolucindeDHTMLselahadenominadoWeb2.0.Paraelloutiliza
XHTMLyCSSparaformatearlainformacin,DOM(DocumentObjectModel)parainteractuaryvisualizar
dinmicamentelainformacin,seapoyaenXML,XSTLparamanipularlainformacinmostrada,elobjeto
XMLHttpRequest(noestndar)yJavascriptparaactualizarlosdatossinnecesidadderefrescarlapgina,yp
manipulartodasesastecnologas.
Segnlawikipedia,JesseJ.Garret,fuelquedesarrolllaideaoriginaldenominndolaAJAX.Elobjeto
XMLHttpRequestfueoriginariamenteinventadoporMicrosoft,usadodesdeinternetexplorer5.0comounobjeto
ActiveX,siendoaccesiblemedianteJavascript.Mozillaensuversin1.0implementaelobjetocompatible.DOM
unaformaderepresentardocumentosestructuradoscomomodelosoriendosaobjetos,estandarizadoporW3C
EstaformadeprogramaresunabuenaalternativaaFlash,siempreycuandosemantenganlasdistancias.FlashademsdetenerellenguajeActionScript,y
poderinteractuarconobjetosXMLposeelafacetadeldiseogrficoincorporado.LacapacidaddeimpactomultimediaqueofreceFlashestmuylejosde
conseguirseconAJAX.ExistenFrameworksdecdigoJavascriptquepermitenanimarobjetos,elusodeDragandDrop,ordenarobjetos,ymuchasms
operacionesquepermitenunosefectosvisualesmuyatractivosynovedosos.
Google(porejemploGmail)yYahoo(porejemploFlickr),usanAjax.Yahoravamosaverunejemploprcticoysencillodeusarestemtododedesarrollo.
1. Elobjetivoescrearunapginaconunosenlacesquecargencontenidoasncrono(Esdecir,sincambiardeURL).
2. NecesitaremoscrearunapginaXHTMLprincipal,ydosmsquesonlasquecargaremos.
3. UnarchivoCSSparadarformatoalasetiquetasxhtml.
4. UnarchivoJS,dondepondremoselcdigoJavascript.
5. ComprobaremoselsoportedelnavegadordelobjetoXMLHttpRequest
Nota:RequieresconocimientosbasicosdeHTMLparaleerestetutorial.Quizastambiendeprogramacinbasicapara
entenderlapartedeCSS.
CrearlosdocumentosXHTML
EmpezamosporlofcileldocumentoXHTMLprincipal(Paramayorreferencia,observalosarchivosdeejemploquevienenconeltutorial):
Estapginalaguardaremosconelnombreajax.html
Ahoralasdospginasqueinsertaremosenlaprincipalquellamaremostutorial1.htm:
Ytutorial2.htm:
Estosdocumentos,puestoquevanaformarpartedeunapginaXHTMLnousanlasetiquetasheaders,nihtml,nibody,yaqueseincluirnenlapginamad
pormediodeAJAX.
CrearelarchivodeestilosCSS
LlegaelmomentodeescribirelarchivodeestilosCSS,lollamamosestilos.css,stienesproblemasalentenderelCSS,pasateporlaseccinde
decss:
#menu{
float: left;
width: 150px;
height: 100px;
border: 3px solid #ececff;
padding: 7px;
padding-left: 8px;
border-right-color: #006;
}
#menu a{
padding: 3px 1px;
display: block;
width: 100%;
text-decoration: none;
font-weight: bold;
border-bottom: 1px solid gray;
color: #606;
}
#menu a:hover{
background-color: #99c;
color: #fff;
}
body {
background-color: ##ececff;
font-family: Geneva, Arial, Helvetica, sans-serif;
}
.titulos {
color: #036;
}
#contenidos{
float:left;
width:480px;
min-height: 250px;
border: 3px solid grey;
margin-left: 10px;
padding: 5px;
padding-bottom: 8px;
background-color: #fff;
}
* html #contenidos{ /*estilo solo para IE ya que no se
admite la propiedad min-height*/
height: 400px;
}
JavascriptyXMLHttpRequest
AhoratocaJavascript,yesdondeseusaelobjetoXMLHttpRequest.
Loprimeroquetenemosquehacerescomprobarladisponibilidadenelnavegador.Paraellonecesitamossaberque:
EnlosnavegadoresbasadosenMozilla,lareferenciaaesteobjetoconcdigoJavascripteswindow.XMLHttpRequest.
Encambio,enInternetExplorertenemosquehacerusodeActiveXObject,existiendovariasversionesdenominadasMicrosoft.XMLHTTPyMsxml2.XMLH
AsquecrearemosunafuncinquecompruebemedianteunIfcondicionalsiexisteelprimerobjeto,yencasodequeseaverdadero,crearemosunnuevo
objetoXMLHttpRequest,perosiesfalso,crearemosunActiveXObjectMicrosoft.XMLHTTP,perosiaunasnoexiste,porltimocrearemosun
Msxml2.XMLHTTP.
Cuandoyatenemoselobjetocreado,disponemosdediversosmtodosypropiedadesparacomprobarelestadodelosdatoscomolaspropiedades
onreadystatechange,readyState,responseText,responseXML,status,statusTextylosmtodosabort(),getAllResponseHeaders(),getresponseHeader(s
header),open(stringurl,stringasynch),send(string),setHeader(stringheader,stringvalue).
Siwindow.XMLHttpRequestdevuelveverdaderoporqueelXMLHttpRequestnoesnulloundefined,leasignaremosalobjetounnombredeistancia(defo
similaracuandolohacemosconActionScript).Aleventoonreadystatechangeseleasignarunafuncinparalarespuestayllamaremosalosmtodoso
ysend().
Sialgunadelascosasdichaarribanotequedoclaro,observaabajoelcodigoparapoderentenderlomejor.
Podemosusarelseifparacomprovarlasversiones.Pero,yaquetenemosquecomprobarlasdiferentesvariablescuandocargamoselobjetoXMLHttpRequ
sepuedeusarelmtododegestindeerrorescatch... try:
// Documento JavaScript
// Esta funcin cargar las paginas
function llamarasincrono (url, id_contenedor)
{
var pagina_requerida = false;
if (window.XMLHttpRequest)
{
// Si es Mozilla, Safari etc
pagina_requerida = new XMLHttpRequest ();
} else if (window.ActiveXObject)
{
// pero si es IE
try
{
pagina_requerida = new ActiveXObject
("Msxml2.XMLHTTP");
}
catch (e)
{
// en caso que sea una versin antigua
try
{
pagina_requerida = new ActiveXObject
("Microsoft.XMLHTTP");
}
catch (e)
{
}
}
}
else
return false;
pagina_requerida.onreadystatechange = function ()
{
// funcin de respuesta
cargarpagina (pagina_requerida, id_contenedor);
}
pagina_requerida.open ('GET', url, true); //
asignamos los mtodos open y send
pagina_requerida.send (null);
}
// todo es correcto y ha llegado el momento de poner la
informacin requerida
// en su sitio en la pagina xhtml
function cargarpagina (pagina_requerida, id_contenedor)
{
if (pagina_requerida.readyState == 4 &&
(pagina_requerida.status == 200 ||
window.location.href.indexOf ("http") == - 1))
document.getElementById (id_contenedor).innerHTML =
pagina_requerida.responseText;
}
Conclusin
ElusodeJavascriptparacrearpginasdinmicasdeXHTMLconviertelossitioswebenaplicaciones.Elconceptodeaccinreaccintomarelevanciay
medianteestatcnicasepuedemanipularcualquiercontenedor<div>quetengalapginamediantesuidypermitirlareaccinantecualquiereventodel
usuarioparacargarlainformacinsolicitadaenunapartedelapgina.
EnesteejerciciosehautilizadotextoenformatoxhtmlyheusadolapropiedadresponseText,perotambinsepuedencreardocumentosXMLymanipula
conlapropiedadresponseXML.Despuspodremosinteractuarconlosnodos,aadiendooeliminndolosalapgina,ordenndolos,oincluso,editaryguar
registros,sicreamosunaconexinconunabasededatos.
Comoquedamuchocaminopordelanteyyonosoyunexperto,asqueahorapodramoshacerlosiguiente:
1. BuscarinformacinsobreAJAX,XMLHttprequest,Web2.0yFrameworks.
2. Noseramalmomentoparaponerseaexperimentarconelejemployaconseguirmejoras,comoporejemploimplementarun"loading..."
3. Crearotrotutorialconotroejemplo.
4. Yclaro,comentarlotodoenlosforos.
DescargarArchivo
Enviauncomentario
CrearaplicacionesdeescritorioenHTML
yAJAXconAIR
LectordefeedsRSSenAJAX
CmocrearunPopupconJQuery
AqpHost
aqphost.com
hostingdecalidadparatusclientesytusproyectosweb
Publicatucomentario
opuedes...
Elautordeesteartculohacerradoloscomentarios.Sitienespreguntasocomentarios,puedeshacerlos
enelforo
Entraalforoyparticipaenladiscusin
Estsregistradoen
Cristalabyquieres
publicartuURLyavatar?
Iniciasesin
Noestsregistradoan
peroquiereshacerloante
depublicartucomentario
Registrate
Blog Foros Tutoriales TutorialesdeFlash Ejemplos.fla Anime Videotutoriales Cursos CursodeFlash CursodeHTML Tags
CristalabfuncionagraciasaInfranetworking