Foros del Web » Programando para Internet » PHP »

Dos scripts a la vez

Estas en el tema de Dos scripts a la vez en el foro de PHP en Foros del Web. Buenos días compañeros estoy haciendo un script que se pasa mucho rato calculando y operando. Entonces había pensada hacer como un contador de progreso de ...
  #1 (permalink)  
Antiguo 01/03/2013, 04:38
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 15 años, 4 meses
Puntos: 6
Pregunta Dos scripts a la vez

Buenos días compañeros estoy haciendo un script que se pasa mucho rato calculando y operando. Entonces había pensada hacer como un contador de progreso de este script con AJAX.

Lo que he hecho es abrir dos paginas, en una se está operando y va guardando los avances en una variable de sesión.
En la otra hay un javascript que se va conectando con AJAX a otra página php que teóricamente tendría que mostrar el valor de la variable se sesión así con javascript se cuanto le falta más o menos.

El problema que me encuentro es que mientras la primera página está operando la segunda (la que se comunica con javascript por AJAX) está en espera.


Como puedo conseguir que se me ejecuten las dos simultáneamente?


Saludos y muchas gracias
  #2 (permalink)  
Antiguo 01/03/2013, 04:49
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Dos scripts a la vez

Buenas.

Si bien no soy "master" en temas AJAX, creo que te puedo echar un cable:

cuando lanzas una petición AJAX, puedes ver el estado de la solicitud, por lo que podrías hacer algo así:

Código Javascript:
Ver original
  1. function doAjax(url,query,getxml,dtc,ev){
  2.   myreq.req.onreadystatechange=function(){
  3.     if(myreq.req.readyState==4){
  4.         if(myreq.req.status==200){
  5.             var item=myreq.req.responseText;
  6.  
  7.             if(getxml==1){
  8.                 item=myreq.req.responseXML;
  9.            }
  10.  
  11.            print(item, dtc,ev);
  12.         }
  13.     }else{
  14.         //código JS que se ejecuta mientras la query está ejecutando
  15.     }
  16. };
  17.  
  18. requestPOST(url, query, myreq.req);
  19. }

Ésta es la función que yo uso para AJAX. En la línea comentada podrías poner algo como:

document.getElementById(divToChange).innerHTML = '<img src=""...';

de manera que muestre un GIF o lo que gustes.

Espero que te sirva.

Saludos!
  #3 (permalink)  
Antiguo 01/03/2013, 04:50
Avatar de Heent  
Fecha de Ingreso: diciembre-2008
Mensajes: 140
Antigüedad: 15 años, 4 meses
Puntos: 6
Respuesta: Dos scripts a la vez

Vale, el problema son las sesiones. Mientras un script se está ejecutando ningún otro puede acceder a las variables se sesión y se tiene que esperar.

¿Como podría hacerlo sin las sesiones? Guardando en base de datos?
  #4 (permalink)  
Antiguo 01/03/2013, 04:58
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años
Puntos: 33
Respuesta: Dos scripts a la vez

Entiendo que tu programa digamos que usa programación concurrente (varios hilos a la vez).

Para que no se alteren las variables tendrías que definir semáforos, o bien hacer algo similar.

Es decir, por lo que dices, supongo que tendrás algo como:

funcion1(){
//accede a SESSION['var1'];
}

funcion2(){
//accede a SESSION['var1'];
}

y ambas funciones a la vez, ¿no?

De ser así, tendrías que indicar mediante semáforos el orden de ejecución.

Si ese es el caso, lo miramos con calma

Saludos

Etiquetas: scripts, vez
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 12:48.