JS cómo almacenar en caché una variable

Lo que quiero hacer es poder crear una variable, darle un valor, cerrar y volver a abrir la ventana, y poder recuperar el valor que establecí en la última sesión. ¿Cuál es la forma más simple de hacer eso? Las respuestas de JQuery son bienvenidas.

Use localStorage para eso. Es persistente durante las sesiones.

Escritura :

localStorage['myKey'] = 'somestring'; // only strings 

Leyendo :

 var myVar = localStorage['myKey'] || 'defaultValue'; 

Si necesita almacenar estructuras complejas, puede serializarlas en JSON. Por ejemplo :

Leyendo :

 var stored = localStorage['myKey']; if (stored) myVar = JSON.parse(stored); else myVar = {a:'test', b: [1, 2, 3]}; 

Escritura :

 localStorage['myKey'] = JSON.stringify(myVar); 

Tenga en cuenta que puede usar más de una clave. Todos serán recuperados por todas las páginas en el mismo dominio.

A menos que quiera ser compatible con IE7, no tiene ninguna razón para usar las cookies obsoletas y pequeñas.

Tienes tres opciones:

  1. Cookies: https://developer.mozilla.org/en-US/docs/DOM/document.cookie
  2. DOMStorage (sessionStorage o localStorage): https://developer.mozilla.org/en-US/docs/DOM/Storage
  3. Si sus usuarios están conectados, puede conservar los datos en la base de datos de su servidor que está codificada para un usuario (o grupo)

Podrías crear una cookie si eso está permitido en tu requerimiento. Si elige tomar la ruta de cookies, la solución podría ser la siguiente. También el beneficio con la cookie es después de que el usuario cierra el navegador y vuelve a abrir, si la cookie no se ha eliminado, el valor se mantendrá.

Cookie * Crear y almacenar una cookie: *

 function setCookie(c_name,value,exdays) { var exdate=new Date(); exdate.setDate(exdate.getDate() + exdays); var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString()); document.cookie=c_name + "=" + c_value; } 

La función que devolverá la cookie especificada:

 function getCookie(c_name) { var i,x,y,ARRcookies=document.cookie.split(";"); for (i=0;i 

Mostrar un mensaje de bienvenida si la cookie está configurada

 function checkCookie() { var username=getCookie("username"); if (username!=null && username!="") { alert("Welcome again " + username); } else { username=prompt("Please enter your name:",""); if (username!=null && username!="") { setCookie("username",username,365); } } } 

La solución anterior está guardando el valor a través de cookies. Es una forma bastante estándar sin almacenar el valor en el lado del servidor.

Jquery

Establezca un valor para el almacenamiento de la sesión.

Javascript:

 $.sessionStorage( 'foo', {data:'bar'} ); 

Recuperar el valor:

 $.sessionStorage( 'foo', {data:'bar'} ); $.sessionStorage( 'foo' );Results: {data:'bar'} 

Almacenamiento local Ahora echemos un vistazo al almacenamiento local. Digamos, por ejemplo, que tienes una matriz de variables que deseas persistir. Puedes hacer lo siguiente:

 var names=[]; names[0]=prompt("New name?"); localStorage['names']=JSON.stringify(names); //... var storedNames=JSON.parse(localStorage['names']); 

Ejemplo del servidor usando ASP.NET

Añadiendo a Sesion

 Session["FirstName"] = FirstNameTextBox.Text; Session["LastName"] = LastNameTextBox.Text; 

// Cuando se recupera un objeto del estado de la sesión, se lo convierte a // el tipo apropiado.

 ArrayList stockPicks = (ArrayList)Session["StockPicks"]; // Write the modified stock picks list back to session state. Session["StockPicks"] = stockPicks; 

Espero que eso haya respondido tu pregunta.

echa un vistazo a mi js lib para el almacenamiento en caché: https://github.com/hoangnd25/cacheJS

Mi blog: nueva forma de almacenar sus datos en caché con Javascript

caracteristicas:

  • Convenientemente use array como clave para guardar el caché
  • Soporte array y localStorage
  • Borrar el caché por contexto (borre todas las publicaciones del blog con authorId = “abc”)
  • Sin dependencia

Uso básico:

Guardando caché:

 cacheJS.set({blogId:1,type:'view'},'

Blog 1

'); cacheJS.set({blogId:2,type:'view'},'

Blog 2

', null, {author:'hoangnd'}); cacheJS.set({blogId:3,type:'view'},'

Blog 3

', 3600, {author:'hoangnd',categoryId:2});

Recuperando caché:

 cacheJS.get({blogId: 1,type: 'view'}); 

Caché de enjuague

 cacheJS.removeByKey({blogId: 1,type: 'view'}); cacheJS.removeByKey({blogId: 2,type: 'view'}); cacheJS.removeByContext({author:'hoangnd'}); 

Proveedor de cambio

 cacheJS.use('array'); cacheJS.use('array').set({blogId:1},'

Blog 1

')};