Foros del Web » Programando para Internet » Javascript »

Duda sobre petición asincrónica con AJAX. Que opinan?

Estas en el tema de Duda sobre petición asincrónica con AJAX. Que opinan? en el foro de Javascript en Foros del Web. Hola. Como va gente?. Tengo una consulta sobre una petición al servidor con AJAX. La situación es esta. Hay un script en PHP, que hace ...
  #1 (permalink)  
Antiguo 05/09/2012, 10:19
af1
 
Fecha de Ingreso: junio-2010
Mensajes: 87
Antigüedad: 13 años, 10 meses
Puntos: 2
Duda sobre petición asincrónica con AJAX. Que opinan?

Hola. Como va gente?. Tengo una consulta sobre una petición al servidor con AJAX.

La situación es esta.

Hay un script en PHP, que hace muchas querys a la BD (inserts y deletes). Este script tarda bastante en ejecutarse (10 min aprox). Antes, habia una opción en el menú principal del sistema, que redireccionaba mediante un "<a href='batch_muchas_querys.php'>" a este script que realiza muchas querys.

El problema es que:

Cuando se hacía click en el ancla, se estaba 10 min esperando que el script termine de hacer las querys (o sea, no se usaba el sistema por 10min).


Entonces la solución que había pensado es de envíar la petición por AJAX, para ejecutar el script de "batch_muchas_querys" sin esperar ningún tipo de respuesta por parte del mismo. Entonces ni bien se envíe la petición, el usuario va a poder seguír navegando por el sitio.

Esto no fué así. Después hacer la nueva implementación, al envíar la petición, el navegador se sigue quedando "congelado" hasta que termina la ejecución de "batch_muchas_querys".. Probé esto ultimo con varios navegadores.


Dejo el código:

Código Javascript:
Ver original
  1. addEvent(window,'load',inicializarEventos,false);
  2.  
  3. function inicializarEventos()
  4. {
  5.     var ob;
  6.     ob=document.getElementById('actualizartablas');
  7.     addEvent(ob,'click',presionEnlace,false);
  8. }
  9.  
  10. function presionEnlace(e)
  11. {
  12.     if(confirm('¿Desea actualizar tablas?')){
  13.       if (window.event)
  14.       {
  15.         window.event.returnValue=false;
  16.         actualizartablas();    
  17.       }
  18.       else
  19.         if (e)
  20.         {
  21.           e.preventDefault();
  22.           actualizartablas();    
  23.         }
  24.     }  
  25. }
  26.  
  27.  
  28. var conexion1;
  29. function actualizartablas()
  30. {
  31.   var url='../control/895batch_consultas_generales.php';
  32.   conexion1=crearXMLHttpRequest();
  33.   conexion1.open("GET", url, true);
  34.   conexion1.send(null);
  35. }


Que opinan??.. Cómo puedo hacer para que el usuario seleccione una opción, se envíe la petición al servidor para ejecuctar el "batch_muchas_querys", pero que inmediatamente después, pueda seguir navegando por las distintas partes del sitio (sin tener que esperar los 10 min)?...

Espero haberme echo entender. Cualquier cosa que no se entienda avisen y edito.

Saludos y gracias che!
  #2 (permalink)  
Antiguo 05/09/2012, 11:33
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Duda sobre petición asincrónica con AJAX. Que opinan?

pero no solo te bastaria poner esto

conexion1.open("GET", url, true);

en false ya que estas haciendo que tu consulta sea sincrona
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #3 (permalink)  
Antiguo 06/09/2012, 05:18
af1
 
Fecha de Ingreso: junio-2010
Mensajes: 87
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Duda sobre petición asincrónica con AJAX. Que opinan?

Hola Dradi7. Gracias por tu comentario.

A ver, con esta línea "conexion1.open("GET", url, true);", mas precisamente con el valor en "true" estoy indicando que la petición sea asincrónica, no?...

Entonces.. Porque el navegador queda a la espera que termine la ejecución del script?...
  #4 (permalink)  
Antiguo 06/09/2012, 08:48
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Duda sobre petición asincrónica con AJAX. Que opinan?

seria bueno ver que realiza tu código del PHP me parece raro que no te funcione, seria bueno poder testear tu codigo usando cuanto es el tiempo de respuesta de la peticion verificala con el Inspector de Google Chrome por ejemplo.
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #5 (permalink)  
Antiguo 06/09/2012, 10:42
af1
 
Fecha de Ingreso: junio-2010
Mensajes: 87
Antigüedad: 13 años, 10 meses
Puntos: 2
Respuesta: Duda sobre petición asincrónica con AJAX. Que opinan?

EL archivo PHP en la "url" es un batch que hace consultas a una BD mysql, una tras la otra. Tarda entre 5 y 10 min, mirando el log de mysql.

Mi duda es: Independientemente de lo que tarde la ejecución de ese script. No hay posibilidad de que el usuario inicialize la ejecución, "clickeando" un enlace, pero que inmediatamente después de eso, pueda seguir navegando, sin esperar que termine la ejecucion del script php.


Dicho script en cuestión no realiza ninguna impresión. No devuelve nada al cliente. Es un batch solo de consultas, una tras la otra.

Etiquetas: ajax
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:11.