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

Problema con el retorno de peticion.responseText

Estas en el tema de Problema con el retorno de peticion.responseText en el foro de Frameworks JS en Foros del Web. tengo dos funciones function recibirPeticion(peticion){ peticion.onreadystatechange = function(){ if(peticion.readyState == 4){ if(peticion.status == 200)//Peticion al servidor terminada { return peticion.responseText;//Retornamos la peticion } } } ...
  #1 (permalink)  
Antiguo 06/10/2008, 15:29
 
Fecha de Ingreso: junio-2006
Mensajes: 126
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Problema con el retorno de peticion.responseText

tengo dos funciones

function recibirPeticion(peticion){

peticion.onreadystatechange = function(){
if(peticion.readyState == 4){
if(peticion.status == 200)//Peticion al servidor terminada
{
return peticion.responseText;//Retornamos la peticion
}
}
}
}

function latido(){

peticion = enviarPeticion("../include/tiempo_sesion.php","GET")
estado = recibirPeticion(peticion);
document.getElementById("tempo").innerHTML = estado;

/*switch(estado){
case 0:
document.getElementById("tempo").innerHTML = estado;
case 1:
window.location.href='../include/salir_s.inc.php?inac=0';
}*/
setTimeout('latido()',1000);
}//Cierre de funcion tempo

Explicacion lo unico que quiero es retornar el valor de la peticion de ajax que se encuentra en recibirPeticion, pero lo unico que me retorna es undefined esta en negrita lo que retorna la funcion.
  #2 (permalink)  
Antiguo 06/10/2008, 16:13
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: Problema con el retorno de peticion.responseText

Hola javsoft,

El problema es que ajax por definición es asincrono, no puedes hacer algo como lo que pides a menos que lo cambies a modo sincrono (pero tiene la desventaja de "congelar" el explorador hasta recibir la respuesta del server".

Saludos.
  #3 (permalink)  
Antiguo 06/10/2008, 16:29
 
Fecha de Ingreso: junio-2006
Mensajes: 126
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Problema con el retorno de peticion.responseText

Gracias GatorV!!! voy a probar lo que dices.
  #4 (permalink)  
Antiguo 06/10/2008, 16:35
 
Fecha de Ingreso: junio-2006
Mensajes: 126
Antigüedad: 17 años, 10 meses
Puntos: 0
Respuesta: Problema con el retorno de peticion.responseText

GatorV probe lo que me digistes cambie a modo sincrono(cambie el valor a false en el metodo open) y lo mismo y ahora lo hice en una sola funcion y retorna el valor que quiero e igual te dejo a continuacion las dos funciones.

function enviarRecibirPeticion(url, metodo){
//Creamos el objeto el ajax
var peticion = Jajax();
//Abrimos la peticion
peticion.open(metodo,url,true);
//Enviamos la peticion
peticion.send(null); //Enviamos la peticion al servidor

peticion.onreadystatechange = function(){
if(peticion.readyState == 4){
if(peticion.status == 200)//Peticion al servidor terminada
{
return peticion.responseText; //Retornamos la peticion
}
}
}
}

function latido(){

var peticion = enviarRecibirPeticion("../include/tiempo_sesion.php","GET")
document.getElementById("tempo").innerHTML = peticion;

/*switch(estado){
case 0:
document.getElementById("tempo").innerHTML = estado;
case 1:
window.location.href='../include/salir_s.inc.php?inac=0';
}*/
setTimeout('latido()',1000);
}//Cierre de funcion tempo

lo que esta en negrita es lo que retorno, y en la funcion latido llamo a la funcion y muestro el valor retornado y me sigue mostrando el valor undefined
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 02:52.