Foros del Web » Programando para Internet » ASP Clásico »

session.abandon en el evento onupload

Estas en el tema de session.abandon en el evento onupload en el foro de ASP Clásico en Foros del Web. Gente como se escribe el "session.abandon" dentro del evento onUnload del <body> de la pagina ??? Probe con: onUnload="><%= session.abandon %><"> onUnload="<% session.abandon %>"> pero ...
  #1 (permalink)  
Antiguo 29/04/2005, 11:48
Avatar de kotayk  
Fecha de Ingreso: marzo-2005
Mensajes: 35
Antigüedad: 19 años, 2 meses
Puntos: 0
session.abandon en el evento onupload

Gente como se escribe el "session.abandon" dentro del evento onUnload del <body> de la pagina ???
Probe con:
onUnload="><%= session.abandon %><">
onUnload="<% session.abandon %>">

pero no hay caso ....

les doy un par de datos mas:
tengo una pagina index.asp que define 2 frames: top->top.asp
mainFrame->center.asp
El unLoad lo pongo en index.asp, pero de todas maneras el error debe estar en como escibo el session.abandon dentro del onUnload.

Gracias-
  #2 (permalink)  
Antiguo 29/04/2005, 11:57
 
Fecha de Ingreso: mayo-2004
Ubicación: Managua, Nicaragua
Mensajes: 281
Antigüedad: 20 años, 1 mes
Puntos: 0
Puedes poner session.Abandon() en algunos de los dos procedimientos de eventos del Global.asa al terminar. Estuve leyendo algo que vos también podes leer, decían que a veces no funcionaba con JavaScript y tenías que esperar que la sesión finalizara con el TimeOut establecido.

http://www.forosdelweb.com/f15/evitar-que-usuario-ingrese-mas-vez-292937/
__________________
Julio Hernández
  #3 (permalink)  
Antiguo 29/04/2005, 12:18
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
kotayka, estás super confundido. Tenés que tener en claro que en el código que pusiste existen 2 tiempos de ejecisión.

Por un lado, tenés el código ASP con el session.abandon... mejor vamos a hacerlo así, con colores: Verde indica el primer tiempo de vida (ASP, que vive en el servidor) y rojo el segundo (HTML y Javascript, que viven en el cliente)


Código:
onUnload="><%= session.abandon %><">
onUnload="<% session.abandon %>"> 
¿Qué ocurre cuando entrás a esa página página? El intérprete ASP "revisa" todo lo verde y lo procesa. Luego, le manda el resultante al navegador para que éste lo interprete y lo muestre (Rojo).

¿Te estás dando cuanta cuál es el punto al que quiero llegar?
Session.Abandon se ejecutó en el servidor antes que el onUnload ocurra en el cliente!

¿Se entiende?

Entonces, ante la pregunta que hacés:...
Cita:
Gente como se escribe el "session.abandon" dentro del evento onUnload del <body> de la pagina ???
... la respuesta es: No tiene sentido alguno colocar "session.abandon" en un evento cliente.

Lo que podrías hacer es al onUnload lanzar un pop-up que sí tenga el "<% session.abandon %>" y que ñeste se cierre automáticamente al OnLoad... pero, como discutimos en otro mensaje, no es 100% fiable ya que algunos navegadores o sistemas antipopus bloquean justamente los pop-ups

Saludos
__________________
...___...
  #4 (permalink)  
Antiguo 29/04/2005, 13:03
Avatar de kotayk  
Fecha de Ingreso: marzo-2005
Mensajes: 35
Antigüedad: 19 años, 2 meses
Puntos: 0
No me parece para nada logico que para hacer algo tan simple como cerrar la sesion del usuario cuando este sale, haya que crear un pop-up.....
Estas seguro que no hay otra manera o no la conoces? Segun lo que decis, no se puede mezclar el codigo asp con eventos. Es esto realmente asi? Como puede ser que no pueda cambiar una variable de sesion por ejemplo (que es asp) ante un determinado evento, o dentro de una funcion javascript?
  #5 (permalink)  
Antiguo 29/04/2005, 13:43
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Cita:
Estas seguro que no hay otra manera o no la conoces?
jeje, ¿como ves AZ?, te salió respondón el joven kotayk

Cita:
Como puede ser que no pueda cambiar una variable de sesion por ejemplo (que es asp) ante un determinado evento, o dentro de una funcion javascript?
Pues simplemente por que el evento que tanto deseas implementar esta en el cliente, en el navegador, en el browser o como quieras llamarlo, "mucho después" de que el código ASP ya se ejecutó.

Por lo visto vienes de lenguajes como VB o Delphi y tienes ese concepto de eventos. Y el concepto esta bien, pero en la programación Web, a diferencia de la programación stand-alone existen DOS tiempos de ejecución: Uno en la PC dónde estan alojadas tus páginas (dónde se ejecuta el ASP) y otra en la PC dónde por medio de un navegador, las están consultado (donde se ejecuta el javascript). Lo que ocurre en un lugar es independiente a lo que ocurre en el otro, por que para colmo, no se conserva el estado de la petición. En cuanto el servidor procesa una petición, se olvida de ella.

  #6 (permalink)  
Antiguo 29/04/2005, 14:19
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Cita:
Iniciado por Myakire
jeje, ¿como ves AZ?, te salió respondón el joven kotayk
Es verdad, es verdad, AZ no tiene ni idea de ASP!

Salú al señor moderador y espero que se ponga a estudiar, no entiendo como es que puede moderar un foro del cuál no conoce nada.

__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 29/04/2005, 14:25
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
a ver, kotayca, tus palabras:

Cita:
No me parece para nada logico que para hacer algo tan simple como cerrar la sesion del usuario cuando este sale...
Que el usuario salga es ALGO QUE OCURRE EN EL CLIENTE.
Para que ASP (servidor) pueda matar una session, el servidor debe enterarse. Y éste no tiene la bola de cristal para adivinar cuando un usuario salió de él (cerrando la ventana, por ejemplo)


Repito: Session.Abandon se ejecutó en el servidor antes que el onUnload ocurra en el cliente!

Intentá hacer estas dos páginas y date cuenta solito:

pagina1.asp:
Código:
<% Session("Ingresar") = 1 %>
<a href="pagina2.asp">ir a la página 2</a>
pagina2.asp
Código:
<html>
...
<body onUnload="<% Session.Abandon %>">
<%
If Session("Ingresar") = 1 Then
Response.Write "Tu sesion no ha caducado"
Else
Response.Write "Tu sesion no existe más y todavía estás acá, no te fuiste a ningún lado xD"
End if
%>
</html>
__________________
...___...
  #8 (permalink)  
Antiguo 29/04/2005, 14:27
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Jajaj, no había visto sus comentarios
Bueno, si, debo ponerme a estudiar un poco más (y no estoy jodiendo, ¿eh? esta vez va denserio)
__________________
...___...
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 19:53.