Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/10/2012, 23:40
DoHITB
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 9 meses
Puntos: 33
Saber cuando AJAX ha terminado

Buenas!

Tengo unas funciones (externas, que no son propias de mi hosting) que lanzan una rutina AJAX, la cual devuelve Texto (es decir, al final hay un innerHTML = texto).

Posteriormente tengo que acceder a un elemento de lo retornado por AJAX.

El problema está en que no puede acceder al elemento porque cuando llega a esa línea de JS todavía no ha cargado el AJAX, no se si me explico.

Entonces le puse un setTimeout, para esperar que acabe el AJAX y que funcione bien.

El problema que le veo a esto es que si yo tengo mi conexión de internet a 30mb, con un timeout bajo me saldrá, pero alguien que tenga 1mb quizás no...

Entonces, cómo puedo hacer para saber cuándo el AJAX ha terminado?

Probé hacer un bloque Try/Catch en un bucle, así

Código:
function postAJAX(){
  b = false;

  while(!b){
    b = true;

    try{
      //cosas
    }catch(err){
      b = false;
    }
  }
}
pero claro, se me quedaba la web clavada en el bucle...

Mi idea es hacer algo así como: "pruebo de lanzar con un setTimeout, si falla vuelve a hacerlo; hasta que funcione", pero no sé si se puede "dormir" la rutina o algo así para que no se quede en un bucle infinito...

Gracias!