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

problemas funcion "cargando" ajax

Estas en el tema de problemas funcion "cargando" ajax en el foro de Frameworks JS en Foros del Web. hola a todos El tema esta en que tengo una imagen con un id='cargando' en display:none, si este lo pongo en "block" la imagen aparece ...
  #1 (permalink)  
Antiguo 01/06/2008, 15:55
 
Fecha de Ingreso: mayo-2007
Mensajes: 39
Antigüedad: 17 años
Puntos: 0
problemas funcion "cargando" ajax

hola a todos

El tema esta en que tengo una imagen con un id='cargando' en display:none, si este lo pongo en "block" la imagen aparece en pantalla correctamente, tal y como quiero que salga cuando esta cargando la peticion AJAX

si yo le indico:
Código:
<a onclick="document.getElementById('cargando').style.display='block';; "><img src="imagenes/musica.jpg" alt="musica"></a>
funciona correctamente, pero si le añado la funcion AJAX para que realice la peticion, no me muestra la imagen, aunque si que realiza la peticion AJAX (ie6 y firefox2) sin embargo en opera me funciona.

Código:
<a onclick="document.getElementById('cargando').style.display='block';llamarAjax('galeria_imagenes.php?img_gal=1','galeria'); "><img src="imagenes/musica.jpg" alt="musica"></a>
Funciones javascript:
Código:
function getXMLHTTPRequest()
{
var req = false;
try
  {
    req = new XMLHttpRequest(); /* p.e. Firefox */
  }
catch(err1)
  {
  try
    {
     req = new ActiveXObject("Msxml2.XMLHTTP");
  /* algunas versiones IE */
    }
  catch(err2)
    {
    try
      {
       req = new ActiveXObject("Microsoft.XMLHTTP");
  /* algunas versiones IE */
      }
      catch(err3)
        {
         req = false;
        }
    }
  }
return req;
}

var miPeticion = getXMLHTTPRequest();

function llamarAjax(pagina,subfijo) {
var miAleatorio=parseInt(Math.random()*99999999);
var url = pagina;
miPeticion.open("GET", url+ "&rand=" + miAleatorio, false);
eval("miPeticion.onreadystatechange = respuestaAjax_"+subfijo+"");
miPeticion.send(null);
}

function respuestaAjax_galeria() {
if(miPeticion.readyState == 4) 
{
if(miPeticion.status == 200) 
		{
var miAleatorio=parseInt(Math.random()*99999999);
document.getElementById('cargando').style.display='none';
document.getElementById('oscurecer').style.display='block'; 
document.getElementById('contenido_principal').style.display='block';
document.getElementById('contenido_principal').innerHTML=miPeticion.responseText;
        } 
		else 
		{
		alert("Ha ocurrido un error: " + miPeticion.statusText);
        }
    }
	else
	{
	document.getElementById('cargando').style.display='block';
	}
}
no se que es lo que falla, pero yo quiero que se muestre la imagen en todos los navegadores ¿alguna idea?

saludos y gracias
  #2 (permalink)  
Antiguo 01/06/2008, 16:00
 
Fecha de Ingreso: mayo-2007
Mensajes: 39
Antigüedad: 17 años
Puntos: 0
Respuesta: problemas funcion "cargando" ajax

por cierto, descartado que sea por que tarda muy poco en cargar ya que la pagina a la que se le envia la petición tarda dos segundos en responder

(sleep(2);)
  #3 (permalink)  
Antiguo 01/06/2008, 21:24
 
Fecha de Ingreso: septiembre-2004
Ubicación: Santiago de Chile
Mensajes: 156
Antigüedad: 19 años, 7 meses
Puntos: 0
Respuesta: problemas funcion "cargando" ajax

y si el document.getElementById('cargando').style.display= 'block';
lo haces cuando miPeticion.readyState == 1 ??? ese es el momento del Loading

yo lo uso con un cargador y funciona a la perfeccion tanto en IE como firefox
Saludos
  #4 (permalink)  
Antiguo 02/06/2008, 07:59
 
Fecha de Ingreso: mayo-2007
Mensajes: 39
Antigüedad: 17 años
Puntos: 0
Respuesta: problemas funcion "cargando" ajax

sigue sin funcionar, es como si se quedase congelado el navegador y no hiciese nada... nada mas que esperar a que le llegue la respuesta ajax para ejecutar algo, sino no hace nada
  #5 (permalink)  
Antiguo 02/06/2008, 09:27
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: problemas funcion "cargando" ajax

Eso pasa porque tu petición AJAX la estas haciendo de manera sincrona (le pasas false al tercer parámetro de tu ajax.open() ), para que se "descongele" tu petición forzosamente debe de ser asíncrona.

Saludos.
  #6 (permalink)  
Antiguo 02/06/2008, 11:20
 
Fecha de Ingreso: mayo-2007
Mensajes: 39
Antigüedad: 17 años
Puntos: 0
Respuesta: problemas funcion "cargando" ajax

BUA muchas gracias.. que despiste
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 18:14.