Foros del Web » Programando para Internet » Javascript »

actualizar la respuesta de consulta ajax en tiempo real

Estas en el tema de actualizar la respuesta de consulta ajax en tiempo real en el foro de Javascript en Foros del Web. Hola a todos. Tengo una pregunta simple quizas pero no encuentro respuesta por mis propios medios. Realizo una llamada ajax a un script php con ...
  #1 (permalink)  
Antiguo 28/08/2012, 06:14
 
Fecha de Ingreso: junio-2008
Mensajes: 42
Antigüedad: 15 años, 10 meses
Puntos: 3
actualizar la respuesta de consulta ajax en tiempo real

Hola a todos. Tengo una pregunta simple quizas pero no encuentro respuesta por mis propios medios.

Realizo una llamada ajax a un script php con jquery
$.ajax({
type: "POST",
dataType: "xml",
url: "/miscript.php",
data: {somedata: somedata},
beforeSend: function(){
//aqui muestro loader
},
error: function(objeto,error){
//aqui muestro alert con error
},
success: function(xml){
// aqui recojo los errores o mensajes que devolve ws
// y los muestro en un popup
}
});

Mi pregunta es la siguente. El script PHP ejecuta varias rituninas muy largas.
Por elemplo dar de alta usuarios. Cada alta llama a varios webservices con lo que tarda de media 5 segundos por usuario. Ahora mismo el usuario vea la pantalla de loader durante 1-2 minutos hasta que finalize el escript.
Me gustaria poder informar la alta de usuarios en tiempo real ya que el escript PHP hace un bucle y escribe un echo tipo
echo '<error>El usuario tal no se ha dado de alta</error>';
or
echo '<message>El usuario tal ha sido dado de alta</message>';
por cada usuario.
Por lo que veo en el estado success solo entra una vez, cuando el script finaliza por completo.
Si tengo 300 usuarios para dar de alta me gustaria mostrar el alert donde apareciese la informacion sobre alta en curso que acaba de ejecutar el script y no esperar varios minutos hasta que el script termine de tramitar 300 altas y muestra un popup bestia con 300 mensajes.
No se si ha explicado claro.

Gracias a todos!
  #2 (permalink)  
Antiguo 28/08/2012, 06:35
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: actualizar la respuesta de consulta ajax en tiempo real

Me parece que para esto tendrías que hacer 300 llamadas al script. O bien una conexión persistente con WebSockets, para lo que necesitas tener acceso a la consola del servidor.

Mírate esto, te puede interesar:
http://code.google.com/p/phpwebsocket/
http://net.tutsplus.com/tutorials/ja...sockets-today/

Un saludo
  #3 (permalink)  
Antiguo 28/08/2012, 09:07
 
Fecha de Ingreso: junio-2008
Mensajes: 42
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: actualizar la respuesta de consulta ajax en tiempo real

Gracias!
Y no hay ninguna forma de monitorizar la respuesta con alguna funcion js que se ejecuta cada segundo comprobando la respuesta o lago asi?
  #4 (permalink)  
Antiguo 28/08/2012, 10:29
Avatar de fjrueda  
Fecha de Ingreso: marzo-2008
Ubicación: Bucaramanga
Mensajes: 313
Antigüedad: 16 años, 1 mes
Puntos: 35
Respuesta: actualizar la respuesta de consulta ajax en tiempo real

Claro, con set interval usted puede realizar la ejecucion de un script segun el tiempo que usted determine.
  #5 (permalink)  
Antiguo 29/08/2012, 01:35
 
Fecha de Ingreso: junio-2008
Mensajes: 42
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: actualizar la respuesta de consulta ajax en tiempo real

Si, lo se. pero me entra en estado "success" cuando la respuesta del servidor ya se ha finalizado y no hay nada que monitorizar. Creo que al final tendre que utilizar WebSockets. No veo otra opcion.

Postdata
Si alquien ya ha implementado algo asi (en javascript claro) y no le importa compartir bienvenido sea. Si no quereis compartir la solucion gratis se puede valorar de ponerle el precio. Importante que el modelo es vista controlador con lo que opciones tipo "se puede acceder desde PHP a la vista" no son validas. Tiene que ser solucion js y no mediante HTML5 ya que debe ser compatible con navegadores que no lo soportan.

Gracias a todos!
  #6 (permalink)  
Antiguo 29/08/2012, 07:39
Avatar de fjrueda  
Fecha de Ingreso: marzo-2008
Ubicación: Bucaramanga
Mensajes: 313
Antigüedad: 16 años, 1 mes
Puntos: 35
Respuesta: actualizar la respuesta de consulta ajax en tiempo real

Pues vkapyrina.

Si usted quiere ver mensajes segun linea procesada, existe en PHP un comando llamado Flush(), que permite expulsar el buffer segun el codigo se lo indique.

Usand esta funcion del tro del codigo de respuesta que envia el ajax usted puede generar su mensaje linea por linea las 300 vcs mensionadas.

Intentelo y nos cuenta como le va.

Etiquetas: ajax, php, real, respuesta
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 19:29.