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

Ejecutar en Server al Cerrar Ventana

Estas en el tema de Ejecutar en Server al Cerrar Ventana en el foro de ASP Clásico en Foros del Web. Antes que nada quiero dejar en claro que NO quiero evitar que se cierre la ventana , solo disparar un evento en el servidor( en ...
  #1 (permalink)  
Antiguo 05/02/2006, 23:01
Avatar de horizonte  
Fecha de Ingreso: octubre-2005
Ubicación: A 50cm del Monitor(el angulo depende del estado de animo)
Mensajes: 148
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta Ejecutar en Server al Cerrar Ventana

Antes que nada quiero dejar en claro que NO quiero evitar que se cierre la ventana, solo disparar un evento en el servidor(en mi caso particular seria modificar el valor de un campo bit de una BD).

Se puede controlar la accion de cerrar la ventana?, es decir si el usuario cierra la ventana con Alt+F4 o con click en "X", se puede hacer algo del lado del servidor.

El caso mio es que cuando entro a editar un ID, lo bloqueo para que nadie pueda entrar al mismo ID y editarlo tambien,(hasta que yo salga de esta pagina), el tema es que si cierro la ventana como les mencione anteriormente no tengo forma de poder controlar ese evento para desbloquear dicho ID(es un campo bit de una BD, que me indica si el ID esta bloqueado o no).

Desde ya muchas gracias por delantado, si alguien ya paso por esto o sabe que hacer,
Saludos.:Adios:
__________________
Mientras tanto aqui, en la Gran Ciudad...
Una nueva hora,...Comienza
:Zzz:
  #2 (permalink)  
Antiguo 06/02/2006, 07:19
Avatar de JoseGCB  
Fecha de Ingreso: noviembre-2004
Ubicación: Caracas Venezuela
Mensajes: 91
Antigüedad: 19 años, 5 meses
Puntos: 0
Código HTML:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT LANGUAGE="JavaScript">
   function openpopup(){	
        window.open("cierresesion.asp","mainFrame","width=100,height=50")	}
</SCRIPT>
</head>

<body bgcolor="#d5e8cc" text="#003366" onUnload="openpopup();">
</body>
</html> 
en CierreSesion.asp
Código HTML:
<!-- #include file="EstadoCaja.asp" -->
<%actEstadoCaja("A")    
Session.abandon 
%>
<SCRIPT LANGUAGE="JavaScript">
window.close();
</SCRIPT> 
Limpio las variables de session y actualizo valores en la base de datos y cierro la ventana
__________________
:-D El peor error es no hacer nada
por pensar que es poco lo que se puede hacer..!!!
  #3 (permalink)  
Antiguo 06/02/2006, 22:53
Avatar de horizonte  
Fecha de Ingreso: octubre-2005
Ubicación: A 50cm del Monitor(el angulo depende del estado de animo)
Mensajes: 148
Antigüedad: 18 años, 6 meses
Puntos: 1
Gracias

Muchas Gracias JoseGCB, mañana lo pruebo y te cuento.

Saludos.
__________________
Mientras tanto aqui, en la Gran Ciudad...
Una nueva hora,...Comienza
:Zzz:
  #4 (permalink)  
Antiguo 09/02/2006, 23:22
Avatar de horizonte  
Fecha de Ingreso: octubre-2005
Ubicación: A 50cm del Monitor(el angulo depende del estado de animo)
Mensajes: 148
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta Pregunta

JoseGCB:

Ante todo gracias por responder.
Lo probe pero no me funciona, y por ende tengo algunas preguntas:

Código:
<!-- #include file="EstadoCaja.asp" -->
actEstadoCaja("A")
Calculo que en EstadoCaja.asp es donde actualizas la BD, pero porque no se hace directamente desde CierreSesion.asp ?? Y la segunda linea que hace?

Y la ultima pregunta era si el onUnload, tambien se activa cuando cerras la pagina con X o Alt+F4, etc.

Saludos y Gracias
__________________
Mientras tanto aqui, en la Gran Ciudad...
Una nueva hora,...Comienza
:Zzz:
  #5 (permalink)  
Antiguo 13/02/2006, 06:58
Avatar de JoseGCB  
Fecha de Ingreso: noviembre-2004
Ubicación: Caracas Venezuela
Mensajes: 91
Antigüedad: 19 años, 5 meses
Puntos: 0
Saludos Horizonte
Lo prmero es es EstadoCaja.asp es la pagina que maneja todo lo que tiene que ver con con la actulizacion de los estados por eso realizo el include

la segunda linea
Código:
actEstadoCaja("A")
es una funcion que actuliza el estado de las caja(en mi caso) y paso como pararametro

Y la Tercera si se ejecuta cuando cierras la ventana con la X o con Alt F4

yo acabo de probar con dos archivos htm y me funciona perfectament aqui te coloco el codigo de los dos archivos pruebalo y me avisas cualquier cosa
Uno.htm
Código HTML:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<SCRIPT LANGUAGE="JavaScript">
   function openpopup(){	
        window.open("dos.htm","mainFrame","width=100,height=50")	}
</SCRIPT>
</head>

<body bgcolor="#d5e8cc" text="#003366" onUnload="openpopup();">
</body>
</html> 

dos.htm
Código HTML:
<SCRIPT LANGUAGE="JavaScript">
alert("Cerrando Ventana");
window.close();
</SCRIPT> 
Saludos
__________________
:-D El peor error es no hacer nada
por pensar que es poco lo que se puede hacer..!!!
  #6 (permalink)  
Antiguo 25/02/2006, 17:06
 
Fecha de Ingreso: enero-2005
Mensajes: 1
Antigüedad: 19 años, 3 meses
Puntos: 0
pero que pasaria si quiero refrescar (F5 o Ctrl+R)
acaso no funciona igual?

pues yo revise y ese es su error

que pasa si en el popup deseo tengo un script para cerrar una sesion o eliminar una cookie...

yo tengo ese problema este popup o mejor dicho evento que quiero hacer es que elimine la cookie y cierre una sesion unicamente cerrando la ventana...

prueben y veran el mismo error que yo
  #7 (permalink)  
Antiguo 27/02/2006, 08:46
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Cita:
Antes que nada quiero dejar en claro que NO quiero evitar que se cierre la ventana,....
Que bueno, por que "creo" no se puede evitar que se cierre.

Cita:
pero que pasaria si quiero refrescar (F5 o Ctrl+R)
acaso no funciona igual?

pues yo revise y ese es su error
Pues no, no es error, ¿o acaso el refrescar no implica que se haga otra llamada al servidor?, es uncomportamamiento correcto y normal.

Si no quieres que refresquen esa pantalla, pues primero hay que hacerla popup (que ya es) y eliminar el menú superior, segundo es eliminar el menú contextual y tercero es capturar y suprimir el F5.
  #8 (permalink)  
Antiguo 07/03/2006, 09:36
Avatar de horizonte  
Fecha de Ingreso: octubre-2005
Ubicación: A 50cm del Monitor(el angulo depende del estado de animo)
Mensajes: 148
Antigüedad: 18 años, 6 meses
Puntos: 1
Aclaraciones

Cita:
Iniciado por Myakire
Que bueno, por que "creo" no se puede evitar que se cierre.
Dije "eso" porque estuve leyendo varios post de gente que se esforzaban por evitarlo... y uno prefiere prevenir ese tipo de respuestas(NO SE PUEDE EVITAR CERRARLAS).

JoseGCB:
Muchas gracias(perdon por la demora en contestar, me habia tomado una semana de vacaciones), anda perfecto, ahora estoy viendo la forma de "unificar" los dos tipos de cierres:
A)Forzado: Alt+F4, X
B)Normal, con el boton de Salir que hay en las paginas

Cuando tenga algo lo devuelvo aqui.

Saludos
__________________
Mientras tanto aqui, en la Gran Ciudad...
Una nueva hora,...Comienza
:Zzz:
  #9 (permalink)  
Antiguo 07/03/2006, 20:47
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 3 meses
Puntos: 146
Cita:
ahora estoy viendo la forma de "unificar" los dos tipos de cierres
En en evento onclick del botón de cerrar mueve alguna bandera a alguna variable. En el evento OnBeforeUnLoad, preguntas por esa variable, si tiene el valor del botón, es que es un cierre normal, de lo contrario es un clic en la X a Alt-F4

Saludos
  #10 (permalink)  
Antiguo 17/05/2006, 22:54
Avatar de horizonte  
Fecha de Ingreso: octubre-2005
Ubicación: A 50cm del Monitor(el angulo depende del estado de animo)
Mensajes: 148
Antigüedad: 18 años, 6 meses
Puntos: 1
Información Documentar

Ante todo una aclaracion: me puse a ver todos mis post y me encontre con que habia varios que quedaron inconclusos(aunque ya fueron solucionados en su tiempo de publicacion), entonces decidi cerrar todos mis post, es decir a lo largo de todo este tiempo fui aprendiendo con ustedes(entre otras fuentes), y me parecio etico aportarles un poco de orden para que estos post sirvan a otra gente.

Esto lo solucione asi: en todas las paginas puse esto
Código:
<script language="javaScript">
function logout() {
  window.location.href="http://dominio/subdominio/Deslogueo.asp"
}
</script>
y en la pagina deslogueo.asp
Código:
<%
Dim oConn, strSQL, objRS
Dim USER

USER= Session("usuario")

Set oConn = Server.CreateObject("ADODB.Connection")
Set objRS = Server.CreateObject("ADODB.Recordset")
oConn.Open "Driver={SQL Server};Server=nomServer;Database=DBName;UID=Usr;PWD=Pass;"

strSQL= "update Login "& _
         "set login= 0 "& _
         "where nom_user='"&USER&"'"
Set objRS = oConn.Execute(strSQL)

oConn.Close
set objRS = nothing
set oConn = nothing
Session.Abandon
%>
<script languaje="JavaScript">
  var ventana= window.self;
  
  ventana.opener= window.self;
  alert("Se Cerro la Session [X]");
  ventana.close(this.href);
</script>
Myakire:
Lo tuyo no lo probe(en aquel entonces), pero igualemte gracias.

Saludos
__________________
Mientras tanto aqui, en la Gran Ciudad...
Una nueva hora,...Comienza
:Zzz:
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 15:00.