ventajas tutorial que español ejemplos desventajas descargar coldfusion coldfusion-8

que - coldfusion tutorial español



¿Podemos renovar la sesión en Coldfusion? (5)

Estoy almacenando 5-6 valores variables en mi sesión. ¿Alguna sugerencia sobre cómo puedo renovar mi estructura de sesión cuando está a punto de caducar? Estoy usando Coldfusion 8. ¡Gracias!


Cualquier llamada a una página de CFM desde esa sesión provocaría que la sesión se extienda. Lo que he visto hacer es que se ejecutará un temporizador JS y terminará poco antes de que expire la sesión. Cuando se ejecuta el temporizador, desencadena una ventana emergente que carga una página que no es de CFM (HTML básico) y esa página establece un mensaje sobre la sesión que finaliza pronto y pregunta al usuario si desea continuar.


Use AJAX para hacer ping al servidor y mantener viva la sesión

O simplemente extienda el tiempo de espera de la sesiónSpand.


La forma exacta de hacer lo que está pidiendo es enviar los datos de la sesión a la base de datos cuando se onSessionEnd y restaurarlos en next onSessionStart . Para averiguar las entradas de datos a leer, puede colocar cookies en el navegador del usuario con un identificador único (por ejemplo, id. Encriptado + salado de esa entrada), tipo de cosas "Recordarme".


Podría intentar configurar el tiempo de espera de la sesión en algo pequeño, digamos 5 minutos.

Luego, cuando alguien se autentique, extienda el tiempo de espera de la sesión a algo más grande, 30 minutos.

Y si se desconectan, vuelva a colocarlo.

p.ej. configura tu administrador cf con un tiempo de espera de sesión de 5 minutos.

Al iniciar sesión:

<cfscript> // extend session timeout to 1800 seconds (30min) session.SetMaxInactiveInterval( javaCast( ''long'', 1800 ) ); </cfscript>

Al desconectarse:

<cfscript> // shrink session timeout to 300 seconds (5min) session.SetMaxInactiveInterval( javaCast( ''long'', 300 ) ); </cfscript>

La sesión se suspende durante otros 5 minutos y luego se limpia. A menos que continúe usando el sitio, en cuyo caso cada solicitud de página le daría otros 5 minutos.


Aquí hay una idea de cómo podría verse Ajax para hacer ping automáticamente en el servidor (como se sugiere en la respuesta de Henry ).

//This function will keep the session alive as long as the page is still open. //Whenever the page nears expiration, it automatically extends it. function autoExtendSession(days,hours,mins,secs){ var milliseconds = (days*86400000)+(hours*3600000)+(mins*60000)+(secs*1000); setTimeout( function(){ $.post("server/heartbeat.cfm"); console.log("Heartbeat sent to the server."); //Start another timer. autoExtendSession(days,hours,mins,secs) //Once we are 98% of the way to the timeout, the heartbeat is sent. //This way the timeout should never actually be reached. }, milliseconds-(milliseconds*0.02)); };

La página hearbeat.cfm realidad no tiene que contener nada, el servidor renovará la sesión cuando lo haga $ .post, tenga o no contenido.