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

Peticion se queda en Cargando.... existe el sleep() o Reintento automatico

Estas en el tema de Peticion se queda en Cargando.... existe el sleep() o Reintento automatico en el foro de Frameworks JS en Foros del Web. Hola buenas tardes. Utilizo la siguiente funcion para realizar unos combos anidados, la mando llamar con el evento Onchange para mandar llamar al siguiente combo. ...
  #1 (permalink)  
Antiguo 30/09/2007, 15:12
 
Fecha de Ingreso: noviembre-2005
Ubicación: Torreon Coahuila
Mensajes: 100
Antigüedad: 19 años
Puntos: 1
Peticion se queda en Cargando.... existe el sleep() o Reintento automatico

Hola buenas tardes.
Utilizo la siguiente funcion para realizar unos combos anidados, la mando llamar con el evento Onchange para mandar llamar al siguiente combo.
A veces la capa se traba y se queda con el texto "Cargando...." osea en este pedazo de codigo,
Código PHP:
    if (ajax.readyState==1) {
                 
capaContenedora.innerHTML="Cargando.......";
         } 
Ay forma de si no se cargo la peticion se vuelva a reintentar automaticamente.
Como seria? Si la peticion no se cargoo ay error hacer la peticion nuevamente?
Investigue y estos son los estados:
Cita:
0: "Uninitialized", el objeto aún no se ha inicializado.
1: "Loading", se estan cargando los datos.
2: "Loaded", se han cargado los datos.
3: "Interactive", el usuario puede interactuar con el objeto, pero aún no está cargado completamente.
4: "Complete", el objeto se ha cargado completamente.

Aqui les dejo el codigo de la libreria seguramente algunos ya la abran utilizado
Código PHP:
/*
*Esta libreria es una libreria AJAX creada por Javier Mellado con la inestimable
*colaboracion de Beatriz Gonzalez.
*descargada del portal AJAX Hispano http://www.ajaxhispano.com
*contacto [email protected]
*
*Puede ser utilizada, pasada, modificada pero no olvides mantener 
*el espiritu del software libre y respeta GNU-GPL
*/

function creaAjax(){
  var 
objetoAjax=false;
  try {
   
/*Para navegadores distintos a internet explorer*/
   
objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (
e) {
   try {
     
/*Para explorer*/
     
objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
     } 
     catch (
E) {
     
objetoAjax false;
   }
  }

  if (!
objetoAjax && typeof XMLHttpRequest!='undefined') {
   
objetoAjax = new XMLHttpRequest();
  }
  return 
objetoAjax;
}

 function 
FAjax (url,capa,valores,metodo)
{
   var 
ajax=creaAjax();
   var 
capaContenedora document.getElementById(capa);

/*Creamos y ejecutamos la instancia si el metodo elegido es POST*/
 
if(metodo.toUpperCase()=='POST'){
    
ajax.open ('POST'urltrue);
    
ajax.onreadystatechange = function() {
         if (
ajax.readyState==1) {
                 
capaContenedora.innerHTML="Cargando.......";
         }
         else if (
ajax.readyState==4){
            if(
ajax.status==200)
            {
                 
document.getElementById(capa).innerHTML=ajax.responseText
            }
            else if(
ajax.status==404)
                 {

                     
capaContenedora.innerHTML "La direccion existe";
                 }
             else
                 {
                     
capaContenedora.innerHTML "Error: ".ajax.status;
                 }
        }
    }
    
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    
ajax.send(valores);
    return;
}
/*Creamos y ejecutamos la instancia si el metodo elegido es GET*/
if (metodo.toUpperCase()=='GET'){

    
ajax.open ('GET'urltrue);
    
ajax.onreadystatechange = function() {
         if (
ajax.readyState==1) {
                 
capaContenedora.innerHTML="Cargando.......";
         }
         else if (
ajax.readyState==4){
            if(
ajax.status==200){ 
                 
document.getElementById(capa).innerHTML=ajax.responseText
            }
            else if(
ajax.status==404)
                 {

                     
capaContenedora.innerHTML "La direccion existe";
                 }
                 else
                 {
                     
capaContenedora.innerHTML "Error: ".ajax.status;
                 }
        }
    }
    
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    
ajax.send(null);
    return
}

Saludos desde Mexico....... y Exito para todos

Última edición por losporros; 30/09/2007 a las 15:19
  #2 (permalink)  
Antiguo 01/10/2007, 09:07
Avatar de oabareload  
Fecha de Ingreso: junio-2006
Ubicación: Distrito Federal, México
Mensajes: 57
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Peticion se queda en Cargando.... existe el sleep() o Reintento automatico

Pues puedes usar una forma muy medieval...

window.setTimeout("tufuncion();",10000);

Eso llamara la función dentro de 10 segundos, tu le modificas para cuando creas que ya tardo mucho.

10000 = 10 segundos (creo¿?)

Lo otro es que sin preguntar en que estado va, pongas cargando, y ya cuando este automáticamente que sustituya el cargando por el contenido que llamaste.

Suerte = desde México http://www.iblog.com.mx/
  #3 (permalink)  
Antiguo 01/10/2007, 13:58
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 6 meses
Puntos: 35
Re: Peticion se queda en Cargando.... existe el sleep() o Reintento automatico

loading..............

El objeto XmlHttpRequest no tiene el método reintentar y la librería que usas tampoco, lo que podrías hacer es... tener un setTImeout de X segundos ejecutandose en paralelo a tu proceso ahax... cosa de que si llega PRIMERO a la funcion del setTImeOut fué porque se tiró el proceso ajax y llamas al método abort() del objeto XmlHttprequest, pero esa librería.... no te da opción a accederla.


connection closed.
__________________

Maborak Technologies
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:44.