Ejecutar acción con ajax al cerrar ventana.

2,822 views
Skip to first unread message

Pablo Braulio

unread,
Jan 13, 2010, 10:28:37 AM1/13/10
to symfo...@googlegroups.com
Hola a todos.

Estoy tratando de controlar cuando un usuario hace logout de mi
aplicaci�n y saber que usuarios hay conectados.

En la Bd hay una tabla de usuarios con un campo que indica si el usuario
est� conectado o no. Cuando un usuario inicia la sesi�n ese campo se
pone a "true", y cuando el usuario pulsa "salir" ese campo se vuelve a
"false".

La complejidad viene cuando un usuario cierra directamente la ventana
del navegador.

Tengo entendido que lo que necesitar�a es detectar dicha acci�n y con
ajax ejecutar una acci�n que cambie el valor de la bd, adem�s de cerrar
la sesi�n.

He probado con esto en el layout:

<script type="text/javascript">
window.onunload = function(){
guardar_info();
}
function guardar_info(){
var url = 'logout/salir';
new Ajax.Request(url, {method: 'post'});
}
</script>

Pero no ejecuta la acci�n.

�Alguien sabe como hacer esto?.
--
Saludos cordiales.
Pablo.

Pablo Braulio

unread,
Jan 13, 2010, 1:40:22 PM1/13/10
to joser....@gmail.com, symfo...@googlegroups.com

Jose R. Prieto escribi�:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> �Has comprobado que se ejecuta el evento?
>

Si se ejecuta. Si en lugar de llamar a la acci�n le pongo en la funcion
"guardar_info" window.open(url), me abre una ventana con la url que le
indico.

Lo de abrir otra ventana no creo que solucione nada, pues si el usuario
cierra igualmente esa ventana estamos en las mismas.
>
> Si usas Firefox + FireBug, con un console.log te lo deber�a de decir;
> algo as�...


>
>
> <script type="text/javascript">
> window.onunload = function(){

> console.log('Se produce el onunload');


>
> guardar_info();
> }
> function guardar_info(){
> var url = 'logout/salir';
> new Ajax.Request(url, {method: 'post'});
> }
> </script>
>

> No obstante, no se yo si le "dar�s tiempo" a ejecutar la petici�n...
> Yo optar�a, quiz�s, por la opci�n m�s "burda" de ense�arle al usuario
> una ventana de confirmaci�n de que desea salir (si est� autentificado,
> y entiendo que es m�s o menos cr�tico saber cu�ndo se desconecta, no
> le deber�a de "molestar" demasiado...) , y que cu�ndo le de al OK,
> lanzes la petici�n de logout, esperes la devoluci�n del sucess del
> Ajax.Request, y en ese momento cierres la ventana.
>
>
> Otra opci�n, es que, adem�s del campo true / false que comentas,
> utilices otros dos, uno con el session_id, y otro con el momento de la
> �ltima petici�n de ese usuario; con esas dos cosas, podr�s hacer una
> tarea programada cada X tiempo, que vaya "limpiando" de usuarios (en
> apariencia) desconectados -los que su �ltima petici�n haya sido hace
> media hora, una hora.. A tu gusto-, y por otro lado, con el
> session_id, puedes comprobar que sigue en la misma m�quina, o est�
> haciendo una petici�n desde otra -lo cu�l te puede evitar temas de
> secuestro de sesiones, si lo desarrollas un poquito m�s-; recuerda,
> adem�s, que PHP tiene un session_timeout que, si no recuerdo mal,
> estaba establecido por defecto en 20 minutos; al cabo de ese tiempo,
> la session caduca, y el usuario deber�a de tener que volverse a
> identificar -al menos, si no recuerdo mal, con el sfGuardPlugin
> funcionaba, cu�ndo lo hab�a probado.. Aunque ya hace tiempo :)
>

�Como ser�a esto que comentas?.
>
> El tema de la "desconexi�n" sin pasar por el logout, es un tema
> recurrente en las aplicaciones que necesitan un estado.. Y c�mo HTTP
> de momento no nos lo da, pues... Hay que hacer "inventos" :)
>
>
> Otro que se me ocurre ahora mismo, ser�a que, por ejemplo, la
> aplicaci�n vaya haciendo peticiones vac�as v�a Ajax, cada minuto, o
> cada dos minutos, para indicar que la ventana del cliente sigue
> abierta -aunque no haga nada... Por si quieres evitar que se le cierre
> la sesi�n por inactividad-, lo cual, si combinas con lo que te
> comentaba sobre una tarea programada que limpie de "usuarios activos"
> los que lleven m�s de X tiempo sin realizar ninguna petici�n, puede
> ser la soluci�n que buscas... Todo depende de lo que te quieras -o te
> interese- complicarte :)
>
>
> Un saludo y espero haberte sido de ayuda.
>
>
> El 13/01/10 16:28, Pablo Braulio escribi�:

> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iQEcBAEBAgAGBQJLTf73AAoJEFlRSentq+j09OwIALPrwg7IziYASeTdCpYhXnze
> uakKJEFGSz+66LPKPZGXYx8CSb0enAAn36kDa4/BqAUzpLRpwDssLWMQ+LQS2kBs
> N/EZnmadZ7jwfH12Ydv599zcBZrCUOvTFTscQmto7SgP2KN4sp6xY5LjpmtEMAzA
> CRCqFl4fV/ZPTfxZE0P0MDgA0u/gWm2p8uDjhaear8b6rVohTIqRnLTnJ1cMY7V1
> 9NKZP7EDe7WxQF5MZEzz/lPphkSh2FMluLPSn0xifng/ZjaMIciH1mV40bbZQTBg
> K/Wkyky5WEZkI5nHFpAkW6Hh+Wo2V4oVcrqhch2KTmV1G9X3N5wUjSStoDF5JEM=
> =hkwB
> -----END PGP SIGNATURE-----
>

--
Saludos cordiales.
Pablo.

Jose R. Prieto

unread,
Jan 14, 2010, 7:24:57 AM1/14/10
to symfo...@googlegroups.com
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hola de nuevo :)


El 13/01/10 19:40, Pablo Braulio escribió:
>
>
> Jose R. Prieto escribió:
> ¿Has comprobado que se ejecuta el evento?
>
>
> > Si se ejecuta. Si en lugar de llamar a la acción le pongo en la

> funcion "guardar_info" window.open(url), me abre una ventana con la
> url que le indico.
>
> > Lo de abrir otra ventana no creo que solucione nada, pues si el
> usuario cierra igualmente esa ventana estamos en las mismas.


No me refería a abrir una ventana, sino a poner un alert y/o un
confirm; algo así (en una mezcla de javascript y pseudocódigo, ojo...):

window.onunload =
    function() {
        if (confirm('¿Está Ud. seguro de que desea cerrar la
aplicación?'))
        {
            // la petición y el handler de la respuesta del request
Ajax va a depender de la librería que selecciones
            myAjaxRequest = new Ajax.Request(parametros...)
            myAjaxRequest.on('success', function(){
                // todo correcto, parece; ahora sí cierras la ventana...
                window.close();
            });
            return false
        }
        return false;
    };

Creo recordar que haciendo un return false, no podían cerrarte la
ventana... Vamos, había alguna forma de interceptar el evento, y
evitar que la cerrasen; mírate el DOM que aparecerá por ahí

https://developer.mozilla.org/en/DOM/window.onunload



>
> Si usas Firefox + FireBug, con un console.log te lo debería de decir;
> algo así...

>
>
> <script type="text/javascript">
>        window.onunload = function(){
>             console.log('Se produce el onunload');
>
>             guardar_info();
>         }
>         function guardar_info(){
>              var url = 'logout/salir';
>          new Ajax.Request(url, {method: 'post'});
>         }
>     </script>
>
> No obstante, no se yo si le "darás tiempo" a ejecutar la petición...
> Yo optaría, quizás, por la opción más "burda" de enseñarle al usuario
> una ventana de confirmación de que desea salir (si está autentificado,
> y entiendo que es más o menos crítico saber cuándo se desconecta, no
> le debería de "molestar" demasiado...) , y que cuándo le de al OK,
> lanzes la petición de logout, esperes la devolución del sucess del

> Ajax.Request, y en ese momento cierres la ventana.
>
>
> Otra opción, es que, además del campo true / false que comentas,

> utilices otros dos, uno con el session_id, y otro con el momento de la
> última petición de ese usuario; con esas dos cosas, podrás hacer una

> tarea programada cada X tiempo, que vaya "limpiando" de usuarios (en
> apariencia) desconectados -los que su última petición haya sido hace

> media hora, una hora.. A tu gusto-, y por otro lado, con el
> session_id, puedes comprobar que sigue en la misma máquina, o está
> haciendo una petición desde otra -lo cuál te puede evitar temas de
> secuestro de sesiones, si lo desarrollas un poquito más-; recuerda,
> además, que PHP tiene un session_timeout que, si no recuerdo mal,

> estaba establecido por defecto en 20 minutos; al cabo de ese tiempo,
> la session caduca, y el usuario debería de tener que volverse a

> identificar -al menos, si no recuerdo mal, con el sfGuardPlugin
> funcionaba, cuándo lo había probado.. Aunque ya hace tiempo :)
>
>
> > ¿Como sería esto que comentas?.


Lo que te comento aquí, es básicamente, lo siguiente; tienes una
entidad que es:

Usuario
    campos: id, nombre, pass, activo, ultimo_request, session_id

En cada petición que hace el usuario autentificado con la ID
correspondiente -si está autentificado, claro-, refrescas el campo
ultimo_request.

Después, creas una tarea de línea de comandos que busque en la tabla
de usuarios los que estén activos y que tengan un ultimo_request con
diferencia de la hora actual mayor del tiempo que tu quieres
(pongamos, 30 minutos), y lo metes en el cron a ejecutar cada, por
ejemplo, 30 minutos -o más, o menos, ya depende del grado de exactitud
que prentendas tener-; los que encuentre con esas características,
pues primero, los desloguea del sistema, y los pone activo a false.

Lo del session_id, es por que, cómo ya tienes que refrescar un campo
en la tabla de Usuario, puedes ir refrescando también el session_id de
la última petición; pero ojo, antes de actualizar ese session_id,
puedes compararlo con el que tuvieses de antes (si hubo una anterior
petición, el campo session_id tendrá la session_id de esa anterior
petición); si no es el mismo, es que algo hay extraño.... :)
Lógicamente, en el momento que activo pasa a false, tienes que poner
el session_id a vacío, para que pueda funcionar.

Después, con esto, y haciendo el tema de las peticiones Ajax cada "n"
minutos, puedes llegar a un nivel de detalle bastante elevado, creo yo :)

Espero te sirva :)

PD: para esto, ASP tenía una cosa muy interesante, que era el
global.asa (podías actuar a nivel de "aplicación" y a nivel de
"sesión" http://www.desarrolloweb.com/articulos/295.php ).. Pena que
PHP no tenga algo similar (al menos yo no lo conozco) ... ;)


>
> El tema de la "desconexión" sin pasar por el logout, es un tema
> recurrente en las aplicaciones que necesitan un estado.. Y cómo HTTP

> de momento no nos lo da, pues... Hay que hacer "inventos" :)
>
>
> Otro que se me ocurre ahora mismo, sería que, por ejemplo, la
> aplicación vaya haciendo peticiones vacías vía Ajax, cada minuto, o

> cada dos minutos, para indicar que la ventana del cliente sigue
> abierta -aunque no haga nada... Por si quieres evitar que se le cierre
> la sesión por inactividad-, lo cual, si combinas con lo que te

> comentaba sobre una tarea programada que limpie de "usuarios activos"
> los que lleven más de X tiempo sin realizar ninguna petición, puede
> ser la solución que buscas... Todo depende de lo que te quieras -o te

> interese- complicarte :)
>
>
> Un saludo y espero haberte sido de ayuda.
>
>
> El 13/01/10 16:28, Pablo Braulio escribió:

> >>>  Hola a todos.
> >>>
> >>>  Estoy tratando de controlar cuando un usuario hace logout de mi
> >>>  aplicación y saber que usuarios hay conectados.

> >>>
> >>>  En la Bd hay una tabla de usuarios con un campo que indica si el
> >>>  usuario está conectado o no. Cuando un usuario inicia la sesión ese

> >>>  campo se pone a "true", y cuando el usuario pulsa "salir" ese campo
> >>>  se vuelve a "false".
> >>>
> >>>  La complejidad viene cuando un usuario cierra directamente la
> >>>  ventana del navegador.
> >>>
> >>>  Tengo entendido que lo que necesitaría es detectar dicha acción y
> >>>  con ajax ejecutar una acción que cambie el valor de la bd,
> además de
> >>>  cerrar la sesión.

> >>>
> >>>  He probado con esto en el layout:
> >>>
> >>>  <script type="text/javascript">
> >>>        window.onunload = function(){
> >>>             guardar_info();
> >>>         }
> >>>         function guardar_info(){
> >>>              var url = 'logout/salir';
> >>>          new Ajax.Request(url, {method: 'post'});
> >>>         }
> >>>     </script>
> >>>
> >>>  Pero no ejecuta la acción.
> >>>
> >>>  ¿Alguien sabe como hacer esto?.
>>


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iQEcBAEBAgAGBQJLTw0YAAoJEFlRSentq+j0ouIH/RoWKcG65s28/5CNb3/nqk2Q
0YiRyYbIdWC/0ofHJ4yb2LEU2LLiUT6AD0QxmLGu6Tit2wTu3Qbfxak4tMl9E8fc
IyhoHrVYkkIQt++tpu02/VdoLiKZ8w26bJI9gqqkt07OA+6UMb+MsQw2Uop8VzwC
Qp28ghYmRinnJhX3bPYlo6YIv8RXWOX3m9ZjsfIh055/tCIjE+9/GjO3IDee8z7s
Biq2bNo5c4boHNOc8IXKltzdqimlL0dRWjnsK1VV9vsLWCy9iZ2pxxWDsBEwayVV
//7L9DovEjwhAOa2lPJC0+osBsciQMMid4fUJoyzOrC2qvUvNN8oba8+83N7pEc=
=q3lq
-----END PGP SIGNATURE-----

Damian Suarez

unread,
Jan 14, 2010, 7:49:49 AM1/14/10
to symfo...@googlegroups.com


2010/1/14 Jose R. Prieto <joser....@gmail.com>
--
Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a symfo...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a symfony-es+...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/symfony-es?hl=es.


No tiene sentido hacer tanta complejidad para tu tarea. Tienes que enfocarte en lo primero que has preguntado. La tecnología que usas (JS y PHP) permiten hacerlo sin problemas; lo que sucede es que hay que investigar un poco.

Yo lo pienso de esta manera. Volviendo a tu primer script:

1) Evitar que se cierre la venatan
Busca la forma de hacerlo. Puedes interceptar el evento. Busca 

2) Haz la conexión con AJAX y envíala

3) Espera el resultado OK de la respuesta. EL objeto request tiene varios estados. Creo que el 4 es que la respuesta ha llegado correctamente.

4) Cuando tengas el resultado, ahora si cierra la ventana.

Haciendo esos pasos debe funcionar.
Saludos.

Pablo Braulio

unread,
Jan 15, 2010, 9:45:36 AM1/15/10
to symfo...@googlegroups.com
Hola.

Gracias por los comentarios, pero el evento window.onunload no me sirve,
pues realmente lo que detecta es si se cambia la p�gina o no si se
cierra la ventana del navegador o el navegador.

Pongo el c�digo que me propones en el layout y cada vez que cambio
(pulsando un link o boton, por ejemplo), me muestra el confirm que se ha
programado en el window.onunload.

He visto un evento (o eso creo) window.onclosed, pero no consigo hacerlo
funcionar.

Damian Suarez escribi�:


>
>
> 2010/1/14 Jose R. Prieto <joser....@gmail.com

> <mailto:joser....@gmail.com>>


>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Hola de nuevo :)
>
>

> El 13/01/10 19:40, Pablo Braulio escribi�:
> >
> >
> > Jose R. Prieto escribi�:
>
> > �Has comprobado que se ejecuta el evento?
> >
> >
> > > Si se ejecuta. Si en lugar de llamar a la acci�n le pongo en la


> > funcion "guardar_info" window.open(url), me abre una ventana con la
> > url que le indico.
> >
> > > Lo de abrir otra ventana no creo que solucione nada, pues si el
> > usuario cierra igualmente esa ventana estamos en las mismas.
>
>

> No me refer�a a abrir una ventana, sino a poner un alert y/o un
> confirm; algo as� (en una mezcla de javascript y pseudoc�digo, ojo...):
>
> window.onunload =
> function() {
> if (confirm('�Est� Ud. seguro de que desea cerrar la
> aplicaci�n?'))
> {
> // la petici�n y el handler de la respuesta del request
> Ajax va a depender de la librer�a que selecciones


> myAjaxRequest = new Ajax.Request(parametros...)
> myAjaxRequest.on('success', function(){

> // todo correcto, parece; ahora s� cierras la ventana...


> window.close();
> });
> return false
> }
> return false;
> };
>

> Creo recordar que haciendo un return false, no pod�an cerrarte la
> ventana... Vamos, hab�a alguna forma de interceptar el evento, y
> evitar que la cerrasen; m�rate el DOM que aparecer� por ah�
>
> https://developer.mozilla.org/en/DOM/window.onunload
>
>
>
>
> >


> > Si usas Firefox + FireBug, con un console.log te lo deber�a de decir;
> > algo as�...
> >
> >

> > <script type="text/javascript">
> > window.onunload = function(){
> > console.log('Se produce el onunload');
> >
> > guardar_info();
> > }
> > function guardar_info(){
> > var url = 'logout/salir';
> > new Ajax.Request(url, {method: 'post'});
> > }
> > </script>
> >

> > No obstante, no se yo si le "dar�s tiempo" a ejecutar la petici�n...
> > Yo optar�a, quiz�s, por la opci�n m�s "burda" de ense�arle al usuario
> > una ventana de confirmaci�n de que desea salir (si est� autentificado,
> > y entiendo que es m�s o menos cr�tico saber cu�ndo se desconecta, no
> > le deber�a de "molestar" demasiado...) , y que cu�ndo le de al OK,

> > lanzes la petici�n de logout, esperes la devoluci�n del sucess del


> > Ajax.Request, y en ese momento cierres la ventana.
> >
> >

> > Otra opci�n, es que, adem�s del campo true / false que comentas,


> > utilices otros dos, uno con el session_id, y otro con el momento de la

> > �ltima petici�n de ese usuario; con esas dos cosas, podr�s hacer una


> > tarea programada cada X tiempo, que vaya "limpiando" de usuarios (en

> > apariencia) desconectados -los que su �ltima petici�n haya sido hace


> > media hora, una hora.. A tu gusto-, y por otro lado, con el

> > session_id, puedes comprobar que sigue en la misma m�quina, o est�
> > haciendo una petici�n desde otra -lo cu�l te puede evitar temas de
> > secuestro de sesiones, si lo desarrollas un poquito m�s-; recuerda,

> > adem�s, que PHP tiene un session_timeout que, si no recuerdo mal,


> > estaba establecido por defecto en 20 minutos; al cabo de ese tiempo,

> > la session caduca, y el usuario deber�a de tener que volverse a


> > identificar -al menos, si no recuerdo mal, con el sfGuardPlugin

> > funcionaba, cu�ndo lo hab�a probado.. Aunque ya hace tiempo :)
> >
> >
> > > �Como ser�a esto que comentas?.
>
> Lo que te comento aqu�, es b�sicamente, lo siguiente; tienes una


> entidad que es:
>
> Usuario
> campos: id, nombre, pass, activo, ultimo_request, session_id
>

> En cada petici�n que hace el usuario autentificado con la ID
> correspondiente -si est� autentificado, claro-, refrescas el campo
> ultimo_request.
>
> Despu�s, creas una tarea de l�nea de comandos que busque en la tabla
> de usuarios los que est�n activos y que tengan un ultimo_request con


> diferencia de la hora actual mayor del tiempo que tu quieres
> (pongamos, 30 minutos), y lo metes en el cron a ejecutar cada, por

> ejemplo, 30 minutos -o m�s, o menos, ya depende del grado de exactitud
> que prentendas tener-; los que encuentre con esas caracter�sticas,


> pues primero, los desloguea del sistema, y los pone activo a false.
>

> Lo del session_id, es por que, c�mo ya tienes que refrescar un campo
> en la tabla de Usuario, puedes ir refrescando tambi�n el session_id de
> la �ltima petici�n; pero ojo, antes de actualizar ese session_id,


> puedes compararlo con el que tuvieses de antes (si hubo una anterior

> petici�n, el campo session_id tendr� la session_id de esa anterior
> petici�n); si no es el mismo, es que algo hay extra�o.... :)
> L�gicamente, en el momento que activo pasa a false, tienes que poner
> el session_id a vac�o, para que pueda funcionar.
>
> Despu�s, con esto, y haciendo el tema de las peticiones Ajax cada "n"


> minutos, puedes llegar a un nivel de detalle bastante elevado, creo
> yo :)
>
> Espero te sirva :)
>

> PD: para esto, ASP ten�a una cosa muy interesante, que era el
> global.asa (pod�as actuar a nivel de "aplicaci�n" y a nivel de
> "sesi�n" http://www.desarrolloweb.com/articulos/295.php ).. Pena que


> PHP no tenga algo similar (al menos yo no lo conozco) ... ;)
>
>
>
> >

> > El tema de la "desconexi�n" sin pasar por el logout, es un tema
> > recurrente en las aplicaciones que necesitan un estado.. Y c�mo HTTP


> > de momento no nos lo da, pues... Hay que hacer "inventos" :)
> >
> >

> > Otro que se me ocurre ahora mismo, ser�a que, por ejemplo, la

> > aplicaci�n vaya haciendo peticiones vac�as v�a Ajax, cada minuto, o


> > cada dos minutos, para indicar que la ventana del cliente sigue
> > abierta -aunque no haga nada... Por si quieres evitar que se le cierre

> > la sesi�n por inactividad-, lo cual, si combinas con lo que te


> > comentaba sobre una tarea programada que limpie de "usuarios activos"

> > los que lleven m�s de X tiempo sin realizar ninguna petici�n, puede

> > ser la soluci�n que buscas... Todo depende de lo que te quieras -o te


> > interese- complicarte :)
> >
> >
> > Un saludo y espero haberte sido de ayuda.
> >
> >

> > El 13/01/10 16:28, Pablo Braulio escribi�:


> > >>> Hola a todos.
> > >>>
> > >>> Estoy tratando de controlar cuando un usuario hace logout de mi

> > >>> aplicaci�n y saber que usuarios hay conectados.


> > >>>
> > >>> En la Bd hay una tabla de usuarios con un campo que indica si el

> > >>> usuario est� conectado o no. Cuando un usuario inicia la
> sesi�n ese


> > >>> campo se pone a "true", y cuando el usuario pulsa "salir" ese
> campo
> > >>> se vuelve a "false".
> > >>>
> > >>> La complejidad viene cuando un usuario cierra directamente la
> > >>> ventana del navegador.
> > >>>

> > >>> Tengo entendido que lo que necesitar�a es detectar dicha acci�n y
> > >>> con ajax ejecutar una acci�n que cambie el valor de la bd,


> > adem�s de
> > >>> cerrar la sesi�n.
> > >>>

> > >>> He probado con esto en el layout:
> > >>>
> > >>> <script type="text/javascript">
> > >>> window.onunload = function(){
> > >>> guardar_info();
> > >>> }
> > >>> function guardar_info(){
> > >>> var url = 'logout/salir';
> > >>> new Ajax.Request(url, {method: 'post'});
> > >>> }
> > >>> </script>
> > >>>

> > >>> Pero no ejecuta la acci�n.
> > >>>
> > >>> �Alguien sabe como hacer esto?.


> > >
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
>
> iQEcBAEBAgAGBQJLTw0YAAoJEFlRSentq+j0ouIH/RoWKcG65s28/5CNb3/nqk2Q
> 0YiRyYbIdWC/0ofHJ4yb2LEU2LLiUT6AD0QxmLGu6Tit2wTu3Qbfxak4tMl9E8fc
> IyhoHrVYkkIQt++tpu02/VdoLiKZ8w26bJI9gqqkt07OA+6UMb+MsQw2Uop8VzwC
> Qp28ghYmRinnJhX3bPYlo6YIv8RXWOX3m9ZjsfIh055/tCIjE+9/GjO3IDee8z7s
> Biq2bNo5c4boHNOc8IXKltzdqimlL0dRWjnsK1VV9vsLWCy9iZ2pxxWDsBEwayVV
> //7L9DovEjwhAOa2lPJC0+osBsciQMMid4fUJoyzOrC2qvUvNN8oba8+83N7pEc=
> =q3lq
> -----END PGP SIGNATURE-----
>
>
> --

> Has recibido este mensaje porque est�s suscrito al grupo


> "symfony-es" de Grupos de Google.

> Para publicar una entrada en este grupo, env�a un correo electr�nico
> a symfo...@googlegroups.com <mailto:symfo...@googlegroups.com>.
> Para anular tu suscripci�n a este grupo, env�a un correo electr�nico
> a symfony-es+...@googlegroups.com
> <mailto:symfony-es%2Bunsu...@googlegroups.com>
> Para tener acceso a m�s opciones, visita el grupo en


> http://groups.google.com/group/symfony-es?hl=es.
>
>
> No tiene sentido hacer tanta complejidad para tu tarea. Tienes que

> enfocarte en lo primero que has preguntado. La tecnolog�a que usas (JS y

> PHP) permiten hacerlo sin problemas; lo que sucede es que hay que
> investigar un poco.
>
> Yo lo pienso de esta manera. Volviendo a tu primer script:
>
> 1) Evitar que se cierre la venatan
> Busca la forma de hacerlo. Puedes interceptar el evento. Busca
>

> 2) Haz la conexi�n con AJAX y env�ala


>
> 3) Espera el resultado OK de la respuesta. EL objeto request tiene
> varios estados. Creo que el 4 es que la respuesta ha llegado correctamente.
>
> 4) Cuando tengas el resultado, ahora si cierra la ventana.
>
> Haciendo esos pasos debe funcionar.
> Saludos.
>
> --

> www.cabezaderaton.com.ar <http://www.cabezaderaton.com.ar> |
> www.symfonias.com.ar <http://www.symfonias.com.ar>
>
> ------------------------------------------------------------------------
>
> --
> Has recibido este mensaje porque est�s suscrito al grupo "symfony-es" de
> Grupos de Google.
> Para publicar una entrada en este grupo, env�a un correo electr�nico a
> symfo...@googlegroups.com.
> Para anular tu suscripci�n a este grupo, env�a un correo electr�nico a
> symfony-es+...@googlegroups.com
> Para tener acceso a m�s opciones, visita el grupo en
> http://groups.google.com/group/symfony-es?hl=es.

--
Saludos cordiales.
Pablo.

Reply all
Reply to author
Forward
0 new messages