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

simular pausa

Estas en el tema de simular pausa en el foro de Frameworks JS en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original for ( i = 0 ; i < 10 ; i ++ ) {         ...
  #1 (permalink)  
Antiguo 29/01/2010, 15:15
 
Fecha de Ingreso: enero-2010
Mensajes: 3
Antigüedad: 13 años
Puntos: 0
Exclamación simular pausa

Código Javascript:
Ver original
  1. for (i=0;i<10;i++){
  2.    
  3.     /*
  4.     llamada Ajax -> enviando variable i
  5.     recogida Ajax con el resultado
  6.     */
  7.  
  8.     var rtdo = resultadoAjax;
  9.  
  10.     document.write(rtdo);
  11.  
  12.     document.write(i);
  13.  
  14. }

Es un ejemplo de lo que tengo. Quiero que cada vez que i incrementa en 1, se lance la llamada Ajax enviando como variables el valor de i, recoga el resultado, lo muestre en pantalla y seguido muestre el valor de i.

Lo que sucede es que primero recorre todo el for y finalmente hace la llamada a Ajax enviando i = 10 ...

Se necesita hacer algun tipo de pausa? o que?
  #2 (permalink)  
Antiguo 29/01/2010, 20:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 17 años, 9 meses
Puntos: 839
Respuesta: simular pausa

Para que actúe de la forma que deseas, la petición debe ser sincrónica. Llama al método open() con el tercer parámetro en false para lograrlo.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 01/02/2010, 02:18
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: simular pausa

Hola David. Hice lo que me dijiste y hace lo que quiero, por cada pasada del bucle hace la lectura Ajax, pero tengo un problema, en http.status me asigna 500 (error):

Código Javascript:
Ver original
  1. var numTarea;
  2. var enProceso = false; // lo usamos para ver si hay un proceso activo
  3. var http = getHTTPObject(); // Creamos el objeto XMLHttpRequest
  4.  
  5. function getHTTPObject() {
  6.     var xmlhttp;
  7.     /*@cc_on
  8.     @if (@_jscript_version >= 5)
  9.     try {
  10.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  11.     } catch (e) {
  12.         try {
  13.             xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  14.         } catch (E) { xmlhttp = false; }
  15.     }
  16.     @else
  17.     xmlhttp = false;
  18.     @end
  19.     @*/
  20.     if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
  21.         try {
  22.             xmlhttp = new XMLHttpRequest();
  23.         } catch (e) { xmlhttp = false; }
  24.     }
  25.     return xmlhttp;
  26. }
  27.  
  28. function verificaUsuario(dd) {
  29.    
  30.     if (!enProceso && http) {
  31.         var url = "ajax.aspx?fecha=" + dd + "/" + (mes + 1) + "/" + ano;        
  32.         http.open("GET", url, false);
  33.         http.onreadystatechange = handleHttpResponse;
  34.         http.send(null);  
  35.     }
  36. }
  37.  
  38. function handleHttpResponse() {
  39.     if (http.readyState == 4) {
  40.         alert(http.status);
  41.         if (http.status == 200) {
  42.            
  43.             if (http.responseText.indexOf('invalid') == -1) {
  44.                 var results = http.responseText.split(",");
  45.                 numTarea = results[0];
  46.                 enProceso = false;                
  47.             }
  48.         }
  49.     }
  50.    
  51. }

Código HTML:
Ver original
  1. for (i=0;i<10;i++){
  2.    
  3.    verificaUsuario(i)
  4.  
  5.    document.write(numTarea);
  6.  
  7.    document.write(i);
  8.  
  9. }


En la página ajax.aspx está saliendo bien el resultado. El problema es que no entra en
Código Javascript:
Ver original
  1. if (http.status == 200) {
  2.            
  3.             if (http.responseText.indexOf('invalid') == -1) {
  4.                 var results = http.responseText.split(",");
  5.                 numTarea = results[0];
  6.                 enProceso = false;                
  7.             }
  8.         }

Alguna idea?
  #4 (permalink)  
Antiguo 01/02/2010, 02:31
 
Fecha de Ingreso: marzo-2008
Mensajes: 383
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: simular pausa

nada nada, dejo el codigo escrito por si alguien lo necesita.

El problema lo tenia en que la ruta de la base de datos no era la correcta :p

Etiquetas: ajax, pausa, simular
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 01:14.