Como sabran la clase cargadorContenidos es extraida de una manual de ajax, la verdad es muy util, sin embargo, en ella no se muestra como colocar una imagen de precarga... si alguien me puede ayudar con ese detalle se los agradeceria. a continuación anexo la clase en mención.
Código Javascript:
Ver original
var net = { READY_STATE_UNINITIALIZED: 0, READY_STATE_LOADING: 1, READY_STATE_LOADED: 2, READY_STATE_INTERACTIVE: 3, READY_STATE_COMPLETE: 4 }; net.CargadorContenidos = function (url, funcion, metodo, parametros, contentType, funcionError) { this.url = url; this.metodo = metodo; this.parametros = parametros; this.contentType = contentType; this.req = null; this.onload = funcion; this.onerror = (funcionError) ? funcionError : this.defaultError; this.cargaContenidoXML (); } net.CargadorContenidos.prototype = { cargaContenidoXML: function () { var ie = navigator.userAgent.toLowerCase().indexOf('msie')!=-1; if (ie) { try { this.req = new ActiveXObject ("Msxml2.XMLHTTP"); } catch (e) { // en caso que sea una versión antigua this.req = new ActiveXObject ("Microsoft.XMLHTTP"); } } else { this.req = new XMLHttpRequest(); } if(this.req) { try { var loader = this; // imagen del objeto this para utilizarla en el metodo onReadyStateChange loader.req.onreadystatechange = function () { loader.onReadyState.call (loader); } this.req.open (this.metodo, this.url, true); if (this.contentType) { this.req.setRequestHeader("Content-Type", this.contentType); } this.req.send(this.parametros); } catch (err) { this.onerror.call(this); } } }, onReadyState: function() { var req = this.req; var ready = req.readyState; if (ready == net.READY_STATE_COMPLETE) { var httpStatus = req.status; if (httpStatus == 200 || window.location.href.indexOf("http") == -1) { this.onload.call(this); } else { this.onerror.call(this); } } }, defaultError: function() { alert ( "Se ha producido un error al obtener los datos" + "\n\nreadyState:" + this.req.readyState + "\nstatus: " + this.req.status + "\nheaders: " + this.req.getAllResponseHeaders() ); } }