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

Mas de una llamada x ajax al mismo tiempo

Estas en el tema de Mas de una llamada x ajax al mismo tiempo en el foro de Frameworks JS en Foros del Web. Buen dia, gente, estoy con un problema cuando hago mas de una llamada x ajax al mismo tiempo. La situacion es la siguiente: Tengo 3 ...
  #1 (permalink)  
Antiguo 01/12/2005, 08:05
 
Fecha de Ingreso: septiembre-2005
Mensajes: 26
Antigüedad: 19 años, 3 meses
Puntos: 0
Mas de una llamada x ajax al mismo tiempo

Buen dia, gente, estoy con un problema cuando hago mas de una llamada x ajax al mismo tiempo.
La situacion es la siguiente: Tengo 3 Div con informacion, cada uno tiene una funcion javascript que hace una llamada por ajax a una pagina php, estas llamadas se pueden dar al mismo tiempo, seria algo asi:
funcion1();
funcion2();
funcion3();
las cuales cada una de ellas actualiza la informacion de cada uno de los div. El tema esta en que cuando se ejecuta siempre devuelve la respuesta de la primer llamada cuando se cargo: un ejemplo seria que si en la pag php que llama funcion1() tuviera la hora de sistema, siempre me devuelve la misma hora. Estas llamadas las hago por un timer desde otra funcion de javascript. Y siempre me estan dando la misma respuesta como si quedar en cache.
Si necesitan algun ejemplo mas claro, por favor me avisan.
  #2 (permalink)  
Antiguo 06/12/2005, 11:39
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 10 meses
Puntos: 11
A mi me pasaba eso a cada rato... creo que es el objeto...
te sugiero que uses esto: (funciona con firefox, mozilla, ie)

Cita:
function AJAX2(){ //funcion que sirve para conectarse
var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
var ajax = false;
for(var i=0 ; !ajax && i<ajaxs.length ; i++){
try{ ajax = new ActiveXObject(ajaxs[i]); }
catch(e) { ajax = false; }
}
if(!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}


function devolver_datos(obj){
var ajax = AJAX2();
if(!ajax){
alert("Tu navegador es una m...");
return false;
}

document.getElementById('mostrar_detalle').innerHT ML = "<center><strong>Cargando... Espere por favor<br><br><img src='load.gif'> </center></strong>"

ajax.open("POST","devolver_detalle.asp",true);
ajax.onreadystatechange = function() {
if (ajax.readyState == 4) {
document.getElementById("mostrar_detalle").innerHT ML=ajax.responseText;
}
}

ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
ajax.send("codigo="+escape(obj.codigo.value)+"&per iodo="+escape(obj.periodo.value) );
}
  #3 (permalink)  
Antiguo 07/12/2005, 02:39
perrogrun
Invitado
 
Mensajes: n/a
Puntos:
Cita:
Iniciado por richardinj
alert("Tu navegador es una m...");

jajajaja, buenísimo. Me imagino a los corbatudos de mis clientes leyendo eso cuando no les funcione el script pq su administrador de redes les haya deshabilitado el js de sus navegadores. jejejejejeje
  #4 (permalink)  
Antiguo 07/12/2005, 05:37
 
Fecha de Ingreso: septiembre-2005
Mensajes: 26
Antigüedad: 19 años, 3 meses
Puntos: 0
Gente, gracias por la ayuda, la final lo resolvi definiendo una variable por cada objeto que realiza una llamada, esto es, si tengo para actualizar por ejemplo una grilla, un cartel de aviso y algo mas, tendré 3 objetos en el javascript, esto es porque si uso siempre el mismo, cuando hago la llamada al 2do objeto si el primero que hizo una llamada todavia no obtuvo una respuesta queda pendiente eternamente dado que es reemplazada por la llamada del 2do.

Cualquier cosa si necesitan les paso el ejemplo, saludos
  #5 (permalink)  
Antiguo 07/12/2005, 09:28
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 10 meses
Puntos: 11
pasa el ejemplo pe...
  #6 (permalink)  
Antiguo 16/12/2005, 05:55
 
Fecha de Ingreso: noviembre-2005
Mensajes: 29
Antigüedad: 19 años, 1 mes
Puntos: 0
El código que presentas me funciona perfectamente peró en IE tengo algun problema.

Os explico:

Hago la llamada a AJAX desde un PHP que lo llama tantas veces como contenido tiene un array (puee ser 2 veces o 30), este PHP tiene un bucle que recorre el array y va haciendo llamadas al AJAX. Desde FIREFOX funciona correctamente y se ven todos los contenidos que hay en diferentes <DIV>. EN IE solo se cargan algunos y de forma aleatoria.

Sabeis que puede ser?
  #7 (permalink)  
Antiguo 16/12/2005, 09:11
Avatar de richardinj  
Fecha de Ingreso: enero-2005
Ubicación: Ciber Espacio
Mensajes: 2.180
Antigüedad: 19 años, 10 meses
Puntos: 11
Cita:
Hago la llamada a AJAX desde un PHP
no se supone que AJAX llama a PHP????

me parece que creas codigo con PHP....

estoy confundido...

Saludos.
  #8 (permalink)  
Antiguo 16/12/2005, 14:04
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años, 7 meses
Puntos: 35
loading...........


Pasa que el objeto Xmlhttprequest, solo no puede hacer AJAX mas de 2 veces al mismo tiempo, solo 1 vez, termina eso y pasa al otro, entonces sería bueno como vi en un script.... tener una variable global si ya se hace un proceso AJAX, entonces si llega a uan funcion y se ve que ya hay un proceso... entonces no hacemos nada y ponemos.... en cola :S o algo as{i....


connection closed.
__________________

Maborak Technologies
  #9 (permalink)  
Antiguo 16/12/2005, 18:46
Avatar de SiR.CARAJ0DIDA  
Fecha de Ingreso: junio-2004
Ubicación: Acá
Mensajes: 1.166
Antigüedad: 20 años, 5 meses
Puntos: 4
para que poner en cola, para eso se crean tantos objetos como sean necesarios para hacer llamadas simultaneas... o no se puede?
__________________
Internet Explorer SuckS
Download FireFox
  #10 (permalink)  
Antiguo 29/03/2012, 17:33
 
Fecha de Ingreso: enero-2012
Ubicación: en buenos aires
Mensajes: 41
Antigüedad: 12 años, 10 meses
Puntos: 1
Respuesta: Mas de una llamada x ajax al mismo tiempo

alguien sabe algo sobre esto ??

o dar un poco de ejemplos
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 08:46.