Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-03-2008
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 21
altp Va por buen camino
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.
Responder Con Cita
  #2  
Antiguo 31-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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á';">
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 31-03-2008
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 21
altp Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 31-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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">
window.onbeforeunload = function (evt) {
  var message = 'Are you sure you want to leave?';
  if (typeof evt == 'undefined') {
    evt = window.event;
  }
  if (evt) {
    evt.returnValue = message;
  }
  return message;
}
</script>
Funciona como se espera. Eso sí... parece que tampoco esto último funciona en Opera. No sé porqué. Habría que buscar un poco y ver qué ocurre con eso...
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 31-03-2008
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 21
altp Va por buen camino
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.
Responder Con Cita
  #6  
Antiguo 31-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 31-03-2008
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 21
altp Va por buen camino
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.
Responder Con Cita
  #8  
Antiguo 31-03-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Mi idea es intentar poner session.Abandon cuando el usuario se salga de una página web.
No sé muy bien para qué quieres hacer algo así, pero, creo que puedes controlar la sesión de usuario cuando este acceda a una determinada página, independientemente de que estuviera antes en ella o no. Ya digo, lo lamento mucho, pero, lo único que se me ocurre es decir lo de antes: que no creo que pueda basarse en los eventos mencionados algo que sea "crítico" para nuestra aplicación.

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:
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
¿Ves? Sin saber es lo que pasa. No sé relacionar una cosa con la otra. El "TimeOut Exceeded" supongo que querrá decir que el servidor está tardando demasiado en responder, puesto que el error te lo da el cliente (navegador). Pero no sé a qué puede ser debido, porque no sé qué se supone que hace tu aplicación en ese punto. Además, lo mío, y muy limitadamente, es PHP, no ASP, menos ASP .NET.

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.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #9  
Antiguo 31-03-2008
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 21
altp Va por buen camino
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
Responder Con Cita
  #10  
Antiguo 01-04-2008
[fer21unmsm] fer21unmsm is offline
Miembro Premium
 
Registrado: dic 2005
Ubicación: Lima
Posts: 627
Poder: 19
fer21unmsm Va por buen camino
Hola, ese mensaje de tiempo excedido, te sale en alguna pagina en particular?, tienes algo de codigo que puedas mostrar

saludos
__________________
"La información tiene más valor cuando se comparte"
Responder Con Cita
  #11  
Antiguo 02-04-2008
altp altp is offline
Miembro
 
Registrado: sep 2003
Posts: 131
Poder: 21
altp Va por buen camino
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Salir del programa Luli Varios 4 08-04-2006 04:01:14
Salir de una pantalla jordan23 Varios 2 16-08-2005 03:55:01
Salir de un While alfredosg19 Varios 5 17-03-2005 02:09:07
Salir de la carcel tcp_ip_es Humor 4 01-06-2004 09:10:21
Salir de un procedimiento senpiterno Varios 1 13-04-2004 07:37:26


La franja horaria es GMT +2. Ahora son las 17:46:53.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi