| Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS | ||||
01/1/70 - En los programas que hemos visto hasta ahora, hemos utilizado variables que solo existían en el archivo que era ejecutado. Cuando cargábamos otra página distinta, los valores de estas variables se perdían a menos que nos tomásemos la molestia de pasarlos por la URL o inscribirlos en las cookies o en un formulario para su posterior explotación. Estos métodos, aunque útiles, no son todo lo prácticos que podrían en determinados casos en los que la variable que queremos conservar ha de ser utilizada en varios scripts diferentes y distantes los unos de los otros.
Podríamos pensar que ese problema puede quedar resuelto con las cookies ya que se trata de variables que pueden ser invocadas en cualquier momento. El problema, ya lo hemos dicho, es que las cookies no son aceptadas ni por la totalidad de los usuarios ni por la totalidad de los navegadores lo cual implica que una aplicación que se sirviera de las cookies para pasar variables de un archivo a otro no sería 100% infalible.
Nos resulta pues necesario el poder declarar ciertas variables que puedan ser reutilizadas tantas veces como queramos dentro de una misma sesión. Imaginemos un sitio multilingüe en el que cada vez que queremos imprimir un mensaje en cualquier página necesitamos saber en qué idioma debe hacerse. Podríamos introducir un script identificador de la lengua del navegador en cada uno de los archivos o bien declarar una variable que fuese valida para toda la sesión y que tuviese como valor el idioma reconocido en un primer momento.
Estas variables que son válidas durante una sesión y que luego son "olvidadas" son definidas con el objeto Session de la siguiente forma:
Session("nombre de la variable") = valor de la variable
Una vez definida, la variable Session, será almacenada en memoria y podrá ser empleada en cualquier script del sitio web.
La duración de una sesión viene definida por defecto en 20 minutos. Esto quiere decir que si en 20 minutos no realizamos ninguna acción, el servidor dará por finalizada la sesión y todas las variables Session serán abandonadas. Esta duración puede ser modificada con la propiedad Timeout:
Session.Timeout = n° de minutos que queramos que dure
Una forma de borrar las variables Session sin necesidad de esperara que pase este plazo es a partir del método Abandon:
Session.Abandon
De este modo todas las variables Session serán borradas y la sesión se dará por finalizada. Este método puede resultar practico cuando estemos haciendo pruebas con el script y necesitemos reinicializar las variables.
Lo que se suele hacer es crear un archivo en el que se borran las cookies y se abandona la sesión. Este archivo será ejecutado cuando queramos hacer borrón y cuenta nueva:
|
<% @ LANGUAGE="VBSCRIPT" %> <HTML> <HEAD> <TITLE>Puesta a cero</TITLE> </HEAD> <BODY> <% For Each galleta in Response.Cookies Galleta="" Next Session.Abandon %> Borrón y cuenta nueva!!<br> <a href="url de la página de inicio">Volver al principio</a> </BODY> </HTML> |
| Autoría, licencia y acciones sobre este artículo | ||||||
|
Informe de Rubén Alvarez*
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright. * Para consultas técnicas utilizar la lista de correo.
|
| Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar. |
| Se muestran 2 comentarios revisados |
RESPUESTA
El objeto session tiene validez dentro del servidor de ASP. Pero el servidor ASP no se puede dar cuenta de que el explorador se ha cerrado. Tampoco se da cuenta si el explorador se ha ido a otra página, abandonando la nuestra. Así pues, el objeto session también se destruye si la sesión queda inactiva durante un cierto tiempo, por defecto 20 minutos. Si la página permanece inactiva quiere decir que el usuario se ha ido o ha cerrado el explorador.
Ahora bien, si se cierra el explorador, y se vuelve a abrir, accediendo a la misma dirección donde antes teníamos, por ejemplo, algunas variables de sessión activas, éstas se han perdido. Es decir, que si cerramos el explorador y lo volvemos a abrir, se abre una nueva sessión en los sitios donde vayamos pasando. Esto es debido a que las sesiones también están enlazadas con los navegadores por medio de cookies y si cerramos el navegador, se pierden esas cookies y cuando se vuelve a abrir y se abren nuevas sesiones se crean esas cookies, pero se crean nuevas, sin respetar lo que había anteriormente.
| Añadir un comentario del artículo |
| Comentarios sin revisar |
| Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente. |
| Ver los comentarios no revisados |
| Añadir un comentario del artículo |
| Enlaces: |
| Maestrosdelweb |
Lectura recomendada + ASP.NET Compra este libro en Agapea, la librería urgente a domicilio. |
||||||||
Tienda DesarrolloWeb