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

Timeout Ajax

Estas en el tema de Timeout Ajax en el foro de Frameworks JS en Foros del Web. Buenas a tod@s, Tengo un problema que seguramente será muy sencillo de resolver pero que no encuentro respuesta. Hago una función en Ajax que tarda ...
  #1 (permalink)  
Antiguo 03/07/2008, 10:58
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
Timeout Ajax

Buenas a tod@s,

Tengo un problema que seguramente será muy sencillo de resolver pero que no encuentro respuesta.

Hago una función en Ajax que tarda en finalizar alrededor de 3 horas, y el problema es que cuando lleva unos 30 minutos, se queda "colgado" el proceso que va mostrando imágenes...

La pregunta es:

¿Hay alguna forma de estipular el timeout del proceso de Ajax?

Es decir, supongo que esta línea:

Código PHP:
if (peticion.readyState == 4) { 
Que comprueba si ya ha finalizado, tendrá una especia de timeout, igual que en ASP le pongo la instrucción:

Código PHP:
Server.ScriptTimeout 120000 
Para que deje correr el proceso, tiene que haber algún equivalente para que Ajax espere la finalización del mismo, ¿me equivoco? o simplemente estoy diciendo tonterías...

Agradezco cualquier ayuda!
  #2 (permalink)  
Antiguo 05/07/2008, 04:02
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
Respuesta: Timeout Ajax

¿Tan complicado es que no se puede poner un Timeout?, no lo entiendo...

A ver si alguien me puede dar alguna referencia!

Un saludo.
  #3 (permalink)  
Antiguo 05/07/2008, 18:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Timeout Ajax

Hola pempas,

No puedes poner un "timeout" en AJAX, y si tienes un proceso tan largo, lo mas recomendable es ejecutarlo en segundo plano ya que si lo haces directamente en el browser si se cierra o pierdes la conexion el proceso se pararia.

Saludos.
  #4 (permalink)  
Antiguo 07/07/2008, 01:23
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
Respuesta: Timeout Ajax

Gracias GatorV,

¿Cómo ejecuto un proceso en segundo plano?, nunca lo he hecho...

También tengo una pregunta ya de paso:

- Cuando se realiza una petición Ajax, esta espera a que una función o proceso termine y devuelva el resultado, pero si por ejemplo quiero realizar un Ajax que sea una instalación de una aplicación, que vaya devolviendo el paso que está realizando, ¿cómo lo hago?, es decir, un ejemplo sería en un textarea que fuese escribiendo.

1. Iniciando instalación
2. Comprobando componentes del servidor
3. Componentes correctos!
4. Copiando archivos
etc...

¿Cómo lo hago?, ya que en un mismo proceso tan solo me deja devolver un único mensaje al final del mismo, pero no puedo ir escribiendo al usuario cual es el paso que está realizando, esto lo he visto en algún sitio, pero cuando lo ví no entendía demasiado de Ajax y no me paré a investigar, ahora no sé donde estaba...

Un saludo y gracias de nuevo.
  #5 (permalink)  
Antiguo 07/07/2008, 09:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Timeout Ajax

Hola pempas,

El proceso en segundo plano lo ejecutas en el servidor con el lenguaje que estes usando en el servidor.

Para hacer lo que pides necesitas más bien otro proceso en segundo plano y desde la interfaz web hacer un request en AJAX a un archivo en el servidor que averigue el estado y se lo devuelva a AJAX, al finalizar vuelves a llamar y así.

Saludos.
  #6 (permalink)  
Antiguo 08/07/2008, 01:46
Avatar de pempas  
Fecha de Ingreso: diciembre-2003
Ubicación: Barcelona
Mensajes: 985
Antigüedad: 20 años, 4 meses
Puntos: 6
Respuesta: Timeout Ajax

Muchas gracias GatorV, se agradece tu ayuda.

Un saludo.
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 14:19.