Pregunta

Tengo un objeto que contiene datos relacionados con la interfaz de usuario del usuario.Por el momento, los datos vienen en forma de json, ejecuto JSON.parse para evaluar el objeto y generar algo de HTML en consecuencia.

Estoy pensando en almacenar la cadena json en el almacenamiento de sesión local (no en el almacenamiento local) y llamarlo cada vez que la interfaz de usuario necesita actualizarse con nuevo HTML.De esta forma, si el usuario abre otra página en el mismo navegador, todo el HTML de todas las páginas será el mismo.

Por ahora, el objeto se almacena en la memoria y las interacciones entre las acciones del usuario en la interfaz de usuario y las modificaciones del objeto se ejecutan rápidamente.Si lo serializo y lo guardo en el almacenamiento de la sesión, ¿los navegadores almacenarán los datos en la RAM o en el disco duro y ralentizarán la página?

¿Fue útil?

Solución

Taken from the html5 spec:

The lifetime of a browsing context can be unrelated to the lifetime of the actual user agent process itself, as the user agent may support resuming sessions after a restart.

Which means browsers may store this information to disk.

Performance will be up to browser specific and OS specific implementations. However, fetching this information is very unlikely to be a bottleneck.

Otros consejos

I did this small test FF 32, Chrome 37, IE 11. Just for fun.

console.clear();
var s = new Date();
for(var i=0; i < 100000; i++)
{
  sessionStorage.item = i.toString();
}
var e = new Date();
console.log("session: " + (e - s) + " ms");

s = new Date();
var mem;
for(var i=0; i < 100000; i++)
{
  mem = i.toString();
}
e = new Date();
console.log("mem: " + (e - s) + " ms");

s = new Date();
for(var i=0; i < 100000; i++)
{
  localStorage.item = i.toString();
}
e = new Date();
console.log("local: " + (e - s) + " ms");
console.log('Done');

FF

  • session: 830 ms
  • mem: 92 ms
  • local: 1156 ms

Chrome

  • session: 2852 ms
  • mem: 147 ms
  • local: 2893 ms

IE

  • session: 977 ms
  • mem: 81 ms
  • local: 15062 ms

After finishing test browser's window got frozen for few seconds and CPU + Disk activity increased (caused by localStorage).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top