2012-05-07 32 views

Respuesta

2

La sesión es un mecanismo del lado del servidor, por lo que necesita una lógica de servidor para iniciar y administrar las sesiones.

1

JS no puede acceder directamente a las sesiones. Se almacena en el servidor, mientras que javascript se ejecuta en el cliente. Pero se puede hacer de forma indirecta, por ejemplo, almacenarlo en un archivo oculto, enviarlo al servidor y recuperar y asignar los valores ocultos a la sesión.

5

javascript solo admite cookies. Puede configurarlos para realizar un seguimiento de la sesión de un usuario, pero no admiten el uso de sesiones.

function createCookie(name,value,days) { 
    var expires = ""; 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     expires = "; expires="+date.toGMTString(); 
    } 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') { 
      c = c.substring(1,c.length); 
     } 
     if (c.indexOf(nameEQ) == 0) { 
      return c.substring(nameEQ.length,c.length); 
     } 
    } 
    return null; 
} 

function eraseCookie(name) { 
    createCookie(name,"",-1); 
} 

Fuente: http://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/19283/how-to-save-session-values-in-javascript

1

Podemos hacer un manejo sesión en una página HTML con la ayuda de JavaScript?

Indirectamente. Use AJAX para invocar un controlador HTTP del lado del servidor que tenga en cuenta las sesiones. jQuery.ajax() hace que AJAX sea fácil y hay muchos ejemplos.

Por ejemplo, esto se hace en .Net llamando a un punto final WCF, un servicio web o incluso una página que tiene acceso al mismo proceso en el que se mantiene el estado de la sesión.

Tanto puede obtener/establecer valores en la sesión de esta manera.

2

Si bien el término "sesión" generalmente se usa para un mecanismo del lado del servidor, que naturalmente no se puede utilizar sin algún script del lado del servidor, puede implementar una pseudo-sesión en JS si solo desea tener un seguimiento de inicio de sesión :

  • aplicar un campo oculto con la fecha y hora del inicio de sesión de usuario como valor
  • actualización de este campo con la nueva marca de tiempo cada vez que el usuario realiza una acción significativa
  • ejecutar un pseudo-tarea programada con setInterval() , compruebe si el valor en el campo oculto es anterior a su tiempo de sesión permitido
    • si es mayor, ejecutar el código de tiempo de espera de la sesión

tener cuidado, sin embargo, 1. un mecanismo de este tipo puede causar cierta tensión en sus clientes navegadores en función de su sitio y los parámetros (acciones vistos , frecuencia del intervalo de verificación) 2. esto no podría sobrevivir si el usuario cierra la ventana/pestaña del navegador

1

Hoy (septiembre de 2017) recomendaría utilizar la función de almacenamiento web HTML5.

Citando del W3C: almacenamiento web

HTML; mejor que las cookies ¿Qué es HTML Web Storage?

Con almacenamiento web, las aplicaciones web pueden almacenar datos localmente en el navegador del usuario .

Antes de HTML5, los datos de la aplicación tenían que almacenarse en cookies, incluidos en cada solicitud del servidor. El almacenamiento web es más seguro, y las grandes cantidades de datos se pueden almacenar localmente, sin afectar el rendimiento del sitio web.

A diferencia de las cookies, el límite de almacenamiento es mucho mayor (al menos 5 MB) y la información nunca se transfiere al servidor.

El almacenamiento web es por origen (por dominio y protocolo). Todas las páginas, desde un origen, pueden almacenar y acceder a los mismos datos.

Más detalles acerca de cómo funciona y cómo ponerlo en práctica aquí: https://www.w3schools.com/html/html5_webstorage.asp

también los Documentos MDN son una buena fuente para obtener aún más detalles: https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage

cifrar Obviamente los datos almacenados en el almacenamiento Web no lastimaría

Cuestiones relacionadas