Motor A.J.A.X. revivido

Una de las consultas en los buscadores como Google, Bing o Yahoo! que hace que muchos navegantes ingresen a mi blog es el de encontrar código para un motor A.J.A.X. (Asynchronous JavaScript and XML).

Hace algunos años, cuando el portal Pregunta Al Experto estaba en funcionamiento, una de las entradas era, justamente, una referida a este tema. Luego, con la desaparición del portal el código se perdió, pero el viejo post hacía el mismo sigue por ahí, vivo, en este blog.

Por lo tanto, y para que las búsquedas no sean infructuosas aprovecho esta entrada para copiar y pegar el dichoso ejemplo de ese motor A.J.A.X.

Si bien no es un motor robusto ni con grandes funcionalidades, podríamos decir que es el corazón del que puedas crear para tus propios desarrollos, o por lo menos, es lo suficientemente simple cómo para entender como funcionan estos, tan usados en frameworks como jQuery, o en proyectos propuestos por Google y otros gigantes de Internet.

function AjaxHandler(url, eventAttach)
{
var self = this;
this._req = null;
this._url = url;
this._eventAttach = eventAttach;

function processReqChanges()
{
if (self._req.readyState == 4) {
if (self._req.status == 200) {
self._eventAttach(self._req.responseText);
} else {
alert("An error happen:\n" +
self._req.statusText);
}
}
}

this.SendRequest = function() {
if (window.XMLHttpRequest) {
this._req = new XMLHttpRequest();
this._req.onreadystatechange = processReqChanges;
this._req.open("GET", this._url, true);
this._req.send(null);
} else if (window.ActiveXObject) {
this._req = new ActiveXObject("Microsoft.XMLHTTP");
if (this._req) {
this._req.onreadystatechange = processReqChanges;
this._req.open("GET", this._url, true);
this._req.send();
}
}
}
}

function WriteSome(msg) {
alert(msg);
}

function ShowAjax() {
var ajax = new AjaxHandler("paginaDestino.aspx", WriteSome);
ajax.SendRequest();
}



Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s