Domanda

Ho un oggetto che contiene dati relativi all'interfaccia utente dell'utente.Per il momento, i dati si presentano sotto forma di json, eseguo JSON.parse per valutare l'oggetto e generare di conseguenza dell'HTML.

Sto pensando di memorizzare la stringa json nella memoria della sessione locale (non nella memoria locale) e chiamarla ogni volta che l'interfaccia utente deve essere aggiornata con un nuovo HTML.In questo modo, se l'utente apre un'altra pagina nello stesso browser, tutto l'HTML di tutte le pagine sarà lo stesso.

Per ora, l'oggetto è archiviato in memoria e le interazioni tra le azioni dell'utente sull'interfaccia utente e le modifiche dell'oggetto avvengono rapidamente.Se lo serializzo e lo memorizzo nella memoria della sessione, i browser memorizzeranno i dati nella RAM o sul disco rigido e rallenteranno la pagina?

È stato utile?

Soluzione

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.

Altri suggerimenti

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).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top