Simplificar ajax en JS puro

¡Hola Amigos!

Encontré este blog, que propone reemplazar nuestra clásica forma de llamar un objeto XMLHttpRequest:

if (window.XMLHttpRequest){ // Firefox, Chrome, ...
    xhrRequest = new XMLHttpRequest();
}
else if (window.ActiveXObject) { // IE
    try {
        xhrRequest = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e) {
        try {
            xhrRequest = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {}
    }
}

Por esta nueva forma:

 
if(!window.XMLHttpRequest) window.XMLHttpRequest = function(){
    return new ActiveXObject("Msxml2.XMLHTTP")
    || new ActiveXObject("Microsoft.XMLHTTP");
};
ajax = new XMLHttpRequest();

Nótese que las primeras cuatro líneas de este código solo tienen que ser escritas una sola vez en todo el script. Dejo a continuación el script que utilizé para comprobar que esto funcionara. Quedé maravillado por la simpleza que adoptó mi código.

<script>
// declaramos nuestro XMLHttpRequest
if(!window.XMLHttpRequest) window.XMLHttpRequest = function(){
    return new ActiveXObject("Msxml2.XMLHTTP")
    || new ActiveXObject("Microsoft.XMLHTTP");
};

var ajax;

// inicializamos un pedido ajax
function ajaxRequest(where) {
	//mucho mas lindo, verdad? : )
	ajax = new XMLHttpRequest();
	ajax.onreadystatechange = ajaxListen;
	ajax.open('get', where, true);
	ajax.send(null);
}

// esta funcion sera llamada a medida que el servidor procesa nuestro pedido
function ajaxListen() {
	if(ajax.readyState === 4)
		alert(ajax.responseText);
}

ajaxRequest("asd.html");
</script>

¡Espero que les sea de utilidad!
Saludos,
Pedro

Agrega un comentario! los comentarios se aprueban automaticamente

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