Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Gif de precarga sobre clase cargadorContenidos

Estas en el tema de Gif de precarga sobre clase cargadorContenidos en el foro de Frameworks JS en Foros del Web. Hola a todos, Como sabran la clase cargadorContenidos es extraida de una manual de ajax, la verdad es muy util, sin embargo, en ella no ...
  #1 (permalink)  
Antiguo 15/02/2011, 07:52
 
Fecha de Ingreso: febrero-2011
Ubicación: Pasto
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Pregunta Gif de precarga sobre clase cargadorContenidos

Hola a todos,

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
  1. var net = {
  2.     READY_STATE_UNINITIALIZED: 0,
  3.     READY_STATE_LOADING: 1,
  4.     READY_STATE_LOADED: 2,
  5.     READY_STATE_INTERACTIVE: 3,
  6.     READY_STATE_COMPLETE: 4
  7. };
  8.  
  9. net.CargadorContenidos = function (url, funcion, metodo, parametros, contentType, funcionError) {
  10.     this.url = url;
  11.     this.metodo = metodo;
  12.     this.parametros = parametros;
  13.     this.contentType = contentType;
  14.     this.req = null;
  15.     this.onload = funcion;
  16.     this.onerror = (funcionError) ? funcionError : this.defaultError;
  17.     this.cargaContenidoXML ();
  18. }
  19.  
  20. net.CargadorContenidos.prototype = {
  21.    
  22.     cargaContenidoXML: function () {
  23.         var ie = navigator.userAgent.toLowerCase().indexOf('msie')!=-1;
  24.    
  25.         if (ie) {
  26.             try {
  27.                 this.req = new ActiveXObject ("Msxml2.XMLHTTP");
  28.             }
  29.             catch (e) { // en caso que sea una versión antigua
  30.                 this.req = new ActiveXObject ("Microsoft.XMLHTTP");
  31.             }
  32.         }
  33.         else {
  34.             this.req = new XMLHttpRequest();
  35.         }
  36.         if(this.req) {
  37.             try {
  38.                
  39.                 var loader = this; // imagen del objeto this para utilizarla en el metodo onReadyStateChange
  40.                 loader.req.onreadystatechange = function () {
  41.                     loader.onReadyState.call (loader);
  42.                 }
  43.                 this.req.open (this.metodo, this.url, true);
  44.                 if (this.contentType) {
  45.                     this.req.setRequestHeader("Content-Type", this.contentType);
  46.                 }
  47.                 this.req.send(this.parametros);
  48.             }
  49.             catch (err) {
  50.                 this.onerror.call(this);
  51.             }
  52.         }
  53.     },
  54.    
  55.     onReadyState: function() {
  56.         var req = this.req;
  57.         var ready = req.readyState;
  58.         if (ready == net.READY_STATE_COMPLETE) {
  59.             var httpStatus = req.status;
  60.             if (httpStatus == 200  || window.location.href.indexOf("http") == -1) {
  61.                 this.onload.call(this);
  62.             }
  63.             else {
  64.                 this.onerror.call(this);
  65.             }
  66.         }
  67.     },
  68.    
  69.     defaultError: function() {
  70.         alert (
  71.             "Se ha producido un error al obtener los datos"
  72.             + "\n\nreadyState:"
  73.             + this.req.readyState
  74.             + "\nstatus: "
  75.             + this.req.status
  76.             + "\nheaders: "
  77.             + this.req.getAllResponseHeaders()
  78.         );
  79.     }
  80. }

Última edición por hechicero0410; 15/02/2011 a las 10:22
  #2 (permalink)  
Antiguo 15/02/2011, 11:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 7 meses
Puntos: 1284
Respuesta: Gif de precarga sobre clase cargadorContenidos

Cita:
Iniciado por hechicero0410 Ver Mensaje
...Como sabran la clase cargadorContenidos es extraida de una manual de ajax...
Pues yo no lo sabía (tampoco tengo interés)

Como respuesta, los objetos Ajax se activan con su métod "send()", o sea que si quieres mostrar algún gif animado supongo que lo más lógico es que lo hagas antes o después de esa instrucción (mejor antes); y las respuestas se obteienen con su readyState == 4 (podría ser 3, pero no hay que fiarse)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 15/02/2011, 12:54
 
Fecha de Ingreso: febrero-2011
Ubicación: Pasto
Mensajes: 2
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Gif de precarga sobre clase cargadorContenidos

Gracias por tu respuesta caricatos...

primero que todo con el "como sabran" queria referirme a que la clase no la desarrolle por mi cuenta y hacer referencia mas o menos al manual del cual fue tomada... al parecer no te agrado mucho, lo ciento es mi primera solicitud de ayuda en los foros, como veras no soy muy bueno en ello. Ahora volviendo al tema mi intencion es mostrar una imagen de loading antes de que se muestre el contenido que recibo como respuesta; te mostrare un ej de como estoy llamando y mostrando la informacion

Llamada a la clase:

Código Javascript:
Ver original
  1. var cargador = new net.CargadorContenidos ('ejemplo.php', funcion_respuesta, 'GET', null, null);

ahora como recibo la respuesta:

Código Javascript:
Ver original
  1. function funcion_respuesta () {
  2.                document.getElementById ('divEjemplo').innerHTML = this.req.responseText;
  3.     }


La idea es que el elemento divEjemplo va a variar y no se como determinar este elemento en la clase y lo unico que obtengo de la clase es el "this.req.responseText"

No se si me explico bn lo que quiero hacer si me podrias dar otra luz te lo agradeceria; puesto que no entendi muy bien tu anterior respuesta.

De antemano te agradezco tu colaboracion.

Etiquetas: ajax, clase, gif, precarga
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:00.