Pergunta

Tenho um objeto que contém dados relativos à IU do usuário.No momento, os dados vêm na forma de json, eu executo JSON.parse para avaliar o objeto e gerar algum HTML de acordo.

Estou pensando em armazenar a string json no armazenamento da sessão local (não no armazenamento local) e chamá-la sempre que a IU precisar ser atualizada com um novo HTML.Dessa forma, se o usuário abrir outra página no mesmo navegador, todo o HTML de todas as páginas será o mesmo.

Por enquanto, o objeto é armazenado na memória e as interações entre as ações do usuário na IU e as modificações do objeto são rápidas.Se eu serializar e armazenar no armazenamento da sessão, os navegadores irão armazenar os dados na RAM ou no disco rígido e tornar a página mais lenta?

Foi útil?

Solução

Retirado da especificação html5:

O tempo de vida de um contexto de navegação pode não estar relacionado ao tempo de vida do próprio processo do agente do usuário, pois o agente do usuário pode suportar a retomada de sessões após uma reinicialização.

O que significa que os navegadores podem armazenar essas informações em disco.

O desempenho dependerá das implementações específicas do navegador e do sistema operacional.No entanto, é muito improvável que buscar essas informações seja um gargalo.

Outras dicas

Fiz este pequeno teste FF 32, Chrome 37, IE 11. Apenas por diversão.

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

  • sessão: 830 ms
  • mem: 92 ms
  • local: 1156 ms

Chrome

  • sessão: 2852 ms
  • mem: 147 ms
  • local: 2.893 ms

IE

  • sessão: 977 ms
  • mem: 81 ms
  • local: 15062 ms

Depois de terminar o teste, a janela do navegador congelou por alguns segundos e a atividade da CPU + Disco aumentou (causada por localStorage).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top