Comunidad de diseño web y desarrollo en internet online

Detener script hasta que AJAX se complete

Citar            
MensajeEscrito el 30 Mar 2012 11:37 pm
Que tal amigos, estoy tratando de escribir un script que recupera un valor por medio de AJAX, el problema es que después necesito utilizar lo que contesta PHP en otro script, el problema es que no puedo detener el script y el AJAX recupera el valor posteriormente.

En resumen el script tarda en ejecutarse 0.05 segundos y el AJAX tarda en responder 1 segundo, espero haberme explicado correctamente, les dejo el código:


Código Javascript :

function ausr(datos){
    console.log("Saludos");
    var respuesta=null;
   $.ajax({
      url: datos,
      method: 'GET',
      dataType: 'jsonp',
      async: false,
      success: function(datos){respuesta=datos; console.log("Consulta AJAX ejecutada correctamente");},
      error: function(jqXHR, textStatus, errorThrown){alert('Ocurrio un error al cargar el contenido, por favor intentelo nuevamente. Informacion: '+ textStatus+' Trown: '+errorThrown);}
      });
   console.log(respuesta);
    return respuesta;
   }



En otra pagina llamo a la función usr():

Código Javascript :

console.log("script listo");
$("#click").click(function(){
var resp=ausr({opciones});
alert(resp);
})


Lo que aparece en la consola es:


script listo
ausr: Saludos.
ausr: Respuesta de servidor null
Resource interpreted as Script but transferred with MIME type text/html: "http://www.tvecorp.tv/tecnoxia/streampanel/usuarios/api/api.php?method=jQuery17107208096093963832_1333133509501&nom=nombredeprueba&log=login&pass=abc1234&est=Activo&admin=2&evt=1,2012/03/29,12,http://midominio.com/mipagina.php;2,2012/03/30,5,http://midominio.com/mipagina.php&_=1333133510852".
Consulta AJAX ejecutada correctamente

Por cranecx

21 de clabLevel



Genero:Masculino  

Desarrollador Web

chrome
Citar            
MensajeEscrito el 31 Mar 2012 09:53 pm
Pues podrías hacerlo de forma sincrónica, pero no ese no es el mantra de Ajax, lo que te sugiero es hacer una segunda función donde manejes los datos que obtienes mediante ajax y la llames cuando este listo sería de esta forma:

Código Javascript :

function ausr(direccion){
    console.log("Saludos");
    var respuesta=null;
    $.ajax({
      url: direccion,
      method: 'GET',
      async: false,
      success: function(datos){ manejarDatos(datos) }
    });
}
function manejarDatos(datos){
    // Aqui haces libremente lo que quieras
    console.log(datos);
}
ausr("http://foros.cristalab.com");

Por hersonHN

Claber

272 de clabLevel

3 tutoriales

Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.