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

Comoa agregar un delay para ejecutar en un ciclo el llamado a xmlhttp

Estas en el tema de Comoa agregar un delay para ejecutar en un ciclo el llamado a xmlhttp en el foro de Frameworks JS en Foros del Web. Esta es la cuestión, necesito que en un ciclo se mande llamar una pagina aspx con diferentes parametros, utilizo el objeto xmlhttp con el metodo ...
  #1 (permalink)  
Antiguo 27/04/2009, 11:57
 
Fecha de Ingreso: septiembre-2004
Mensajes: 217
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta Comoa agregar un delay para ejecutar en un ciclo el llamado a xmlhttp

Esta es la cuestión, necesito que en un ciclo se mande llamar una pagina aspx con diferentes parametros, utilizo el objeto xmlhttp con el metodo GEt y el tercer parametro como false, segun tengo entendido con este valor tendria que esperarse a recibir una respuesta antes de ejecutar otra peticion pero creo que el tiempo no es el suficiente o no me esta funcionando por ello requiero un delay o algo asi para poder dar tiempo para que ejecute el siguiente llamado a la pagina.

intente agregar un settimeout pero esto se ejecuta hasta el final por lo tanto no me sirve o no se exactamente donde ponerlo.

ojala que me puedan ayudar

gracias
  #2 (permalink)  
Antiguo 27/04/2009, 12:39
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 18 años
Puntos: 126
Respuesta: Comoa agregar un delay para ejecutar en un ciclo el llamado a xmlhttp

Hola

Más o menos esta sería la idea, habría que desarrollarla algo más

+ El open a true
+ Empezaría a cargar en el state = 3
+ En el aspx. Las operaciones que quieres que se cargen antes les pondría Response.Flush()

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 27/04/2009, 13:44
 
Fecha de Ingreso: septiembre-2004
Mensajes: 217
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Comoa agregar un delay para ejecutar en un ciclo el llamado a xmlhttp

Muchas gracias Adler
lo voy a agregar a lo que tengo y te aviso
  #4 (permalink)  
Antiguo 28/04/2009, 09:40
 
Fecha de Ingreso: septiembre-2004
Mensajes: 217
Antigüedad: 20 años, 2 meses
Puntos: 0
Pregunta Respuesta: Comoa agregar un delay para ejecutar en un ciclo el llamado a xmlhttp

Hola Adle
fijate que no me funciono o no se si lo estoy haciendo de la manera correcta, aqui esta el codigo de como estoy tratando de implementarlo y otro que estoy probando pero no logro llenar todo lo que requiero, de hacho es un arbol dinamico.

xmlhttp.open("GET", "Archivo.aspx?tree=nombre&id=" + id+ "&otro=" + otro,true);

if (xmlhttp.readyState == 4)
{
if (xmlhttp.status == 200)
{
textHttp = xmlhttp.responseText;
if (textHttp.indexOf("Error") < 0)
{
div.innerHTML = xmlhttp.responseText;
funcion();
}
else
{
window.location = "/ruta/archivo.aspx";
}
funcion2(parametro);
}

}
xmlhttp.send(null)

en el archivo aspx desde el Render agrego el Response.Flush();

pero no me funciona e incluso me marca un error porque no alcanza a llenar los nodos mas internos,

Esta es otra variante de lo que trato de hacer, no me marca ningun error pero solo me abre los dos priemros nodos.

params = "tree=nombre&id=" + id+"&otro="+otro;
xmlhttp.open("POST", "archivo.aspx", false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader('Content-length', params.length);
xmlhttp.setRequestHeader('Connection', 'close');
if (xmlhttp.readyState == 4)
{
if (xmlhttp.status == 200)
{
textHttp = xmlhttp.responseText;
if (textHttp.indexOf("Error") < 0)
{
div.innerHTML = xmlhttp.responseText;
funcion();
}
else
{
window.location = "/ruta/archivo.aspx";
}
funcion2(parametro);
}

}
xmlhttp.send(params)


ojala me puedan ayudar muchas gracias.
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 13:32.