2011-08-02 17 views
9

En primer lugar, me gustaría mencionar que soy un interno con poca experiencia previa en el mundo técnico, así que lamento que la respuesta a mi pregunta parezca obvia. Intenté encontrar una respuesta por un par de días y tengo poco que mostrar.Almacenar en caché un objeto JSON con HTML5

Mi proyecto ha sido desarrollar un directorio telefónico. Lo que estoy tratando de hacer ahora es tener un cuadro de búsqueda frecuente que muestre los diez primeros nombres buscados desde que el usuario comenzó a usar la aplicación. Estoy planeando hacer un objeto JSON con la siguiente información y luego caché del lado del cliente el resultado:

var myJSONObject = {"searched": [  {"firstname":firstName,"lastname":lastName,"PK":pk,"phone":phonenumber,"email":emailaddress,"bu":businessunit,"company":company,"building":building, "fax":fax, "timesvisited":"accumulator to keep track of visits to the name"} 

] };

mi dolor de cabeza ahora mismo es descubrir cómo cachear el objeto JSON. Creé un archivo de manifiesto y sé cómo guardar en caché ciertos archivos como un archivo css, pero ¿cómo se almacena en caché algo como el código enumerado anteriormente específicamente para que los datos se almacenen y se puedan mostrar hasta la página en una segunda visita? ?

+0

No hay tal cosa como un ... Ah, olvídalo ':)' –

+0

jaja .. como dije, soy MUY nuevo en esto ... pero tienes razón. Probablemente sea bueno dejarlo ir;). –

Respuesta

10

Puede usar Local Storage, que es compatible con Firefox 3.5, IE 8 y Chrome 4 en adelante. Para guardar la memoria caché a la memoria local:

localStorage['jsoncache'] = JSON.stringify(myJSONObject); 

para recuperarlo:

myJSONObject = JSON.parse(localStorage['jsoncache']); 

notar que puedes sólo cadenas de tiendas, no cualquier tipo de objeto, en el almacenamiento local. Puede cambiar la clave jsoncache a otra cosa si lo desea.

+0

¡Muchas gracias! :RE. –

+1

¿Sería jsoncache un archivo .txt en el mismo directorio en este caso? –

+0

¡No hay problema! –

4

No entiendo completamente cómo crear, mantener y recuperar el objeto, pero si lo carga a través de Ajax, puede usar el almacenamiento en caché de HTTP.

Si desea almacenar sólo a nivel local, puede utilizar localStorage (sólo nuevos navegadores soportan eso):

// Serialize and store 
localeStorage['topten'] = JSON.stringify(myJSONObject) 

// Retrieve and deserialize 
var myJSONObject = JSON.parse(localeStorage['topten']) 
+1

Gracias :). Su respuesta y la de arriba aclararon esto para mí. –

Cuestiones relacionadas