![]() |
Salir de una página web
Buenos dias.
Estoy trabajando con Delphi 2006 en ASP.NET, mi pregunta es: ¿como puedo controlar que un usuario ha salido de la página dándole a la x del navegador? Por más que busco no encuentro nada, y sé que hace tiempo lo he visto. Gracias. |
Hola,
Esto parece funcionar en Internet Explorer, Firefox y Safari. Sin embargo en Opera parece que no funciona como se espera. Tal vez ahí tengas que investigar un poco más. Código:
<body onbeforeunload="return 'Todo tu trabajo se perderá';"> |
Buenas.
No encuentro onbeforeunload, me da error, lo más parecido es onunload, pero ese evento se dispara siempre que cambiamos de página. A ver si me puedes echar un cable. |
Hola,
Pues, realmente hay bastante información, en esta página, por ejemplo. Lo que pasa es que, aunque lo que he dicho arriba funciona, no me queda claro si es la forma correcta, puesto que parece que "onbeforeunload" es un método del objeto "window", no un atributo del elemento "body". Sin embargo, tanto lo de arriba, como esto otro: Código:
<script type="text/javascript"> |
Gracias por responder.
A pesar de mostrarme error en el body en Delphi 2006, me ha dejado ejecutarlo, pero no funciona como yo esperaba, pues el mensaje aparece siempre que le doy a alguna opción de menú. Yo solo quiero que me aparezca cuando le doy a la x del navegador. |
Hola,
Según leo aquí lo que ocurre con Opera es que trata de distinta forma (que otros navegadores) los eventos "onload" y "unload". Por otro lado, parece que "onbeforeunload" no es un evento estándar, y Opera no lo soporta. De este modo, la verdad es que sólo se me ocurre una cosa: no podríamos fiarnos de estos eventos para tareas críticas. Podrían valer a modo de advertencia, pero, nuestra aplicación no puede depender de estos eventos para algo que pudiera resultar en problemas. Respecto de esto último que dices, no sé hasta qué punto podrías lograr desde tu página enterarte de cuando se cierre el navegador, sino es como hemos comentado aquí. A lo mejor tienes que replantearte el asunto, si, como dices, no va como tú esperas. |
Gracias dec.
Mi idea es intentar poner session.Abandon cuando el usuario se salga de una página web. Estoy dando palos de ciego por un problema que tengo con algunas páginas y estoy intentando eliminar todas las sesiones después de muchas otras cosas. Ya de paso te digo cual es mi problema, en algunas páginas me da TimeOut Exceeded, lo he buscado en internet, he hecho cambios, pero nada, me sigue saliendo, por si te interesa saberlo, estoy utilizando Firebird 2.0 y el provider 1.7 que es para el framework 1.1 Si me puedes echar una mano es esto te lo agradecería. Gracias de nuevo. |
Hola,
Cita:
Si tienes que hacer algo con la sesión de usuario, hazlo cuando esté en tu página. Sin saber más poco puedo decir, sino que, si me lo permites, puedes tener un "problema de diseño", y creas que tienes que hacer algo de una determinada forma, cuando en realidad no es necesario, o puede hacerse de otra en todo caso. Cita:
En PHP existe la posibilidad de determinar el tiempo máximo para la ejecución de un "script", que, "por defecto" es de 30 segundos, si no me equivoco. Esto puede cambiarse, como digo, programáticamente (desde el código fuente) o mediante cierta instrucción en el archivo de configuración. Tal vez tú tendrías que llevar a cabo algo parecido, pero, no tengo ni idea de cómo conseguir esto en tu caso, puesto que yo hablo de PHP. Y además ignoro ahora mismo si en esto también tiene que ver el servidor HTTP. Es decir, si bastaría, hablando de PHP, con cambiar el "tiempo límite" ahí, o también el servidor Apache, por poner un ejemplo, tiene su propia opción de configuración para "limitar" el tiempo de proceso de un "script". Creo que no exactamente, al menos no de la misma forma en que se hace con PHP, para los scripts PHP, pero, tampoco estoy seguro. |
Gracias de nuevo.
La verdad es que el error "Timeout Exceeded" me está volviendo loco, y como te he comentado, he modificado cosas que he ido leyendo, y como me sigue dando pues estaba con el tema de las sesiones, solo por ver si eso tenía algo que ver, yo utilizo sesiones para varias variables, no solo para controlar el usuario. De todas formas te agradezco tu ayuda desinteresada pero con mucho ánimo de ayudar. Sigue así compañero Gracias |
Hola, ese mensaje de tiempo excedido, te sale en alguna pagina en particular?, tienes algo de codigo que puedas mostrar
saludos |
El mensaje sale cuando le da la gana.
A lo mejor pasan unas horas, como que pasan unos dias. La solución que realizo es volver a copiar la DLL del proyecto, desde ese momento ya vuelve a funcionar. Como he probado varias cosas, estaba con el tema de las sesiones a ver si eso tenía algo que ver. Si sabes algo del tema, te agradecería que lo comentaras. Gracias. |
La franja horaria es GMT +2. Ahora son las 12:04:38. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi