Pergunta

Qual é a melhor maneira de armazenar dados de objetos no localStorage do HTML5. Não trabalhei muito com o armazenamento de valor Key.

Na minha pesquisa, vi algumas abordagens diferentes.

Dados de exemplo:

var commands = [
  {invokes: 'Window', type: 'file', data: '/data/1'},
  {invokes: 'Action', type: 'icon', data: '/data/2'},
  {invokes: 'Window', type: 'file', data: '/data/3'}
];

Abordagem 1: As chaves da loja que representam cada item de dados

// for(...) {
localStorage["command[" + i + "].invokes"] = command[i].invokes
localStorage["command[" + i + "].type"] = command[i].type
localStorage["command[" + i + "].data"] = command[i].data
//}

Abordagem 2: Keys é o nome da entidade, loja JSON

localStorage["commands"] = JSON.stringify(commands);

A segunda abordagem exigiria um json.parse ().

prós e contras?

Foi útil?

Solução

Para o registro que fui com a aproximação 2. Minha chave é semelhante a um nome de tabela, o valor é uma matriz de registros JSON Stringified. Ao recuperar a tabela, você deve ligar para JSON.PARSE ().

Outras dicas

As tecnologias para armazenamentos locais são: http://madhukaudantha.blogspot.com/2011/02/client-side-storages-with-html-5.html...

Abordagem 2, ok .. existem mais maneiras

Certamente, sua abordagem funciona muito bem, no entanto, deixa você um pouco preso à convenção que você escolheu avançar. Eu recomendaria que você considere envolver o acesso do LocalStorage em uma aula para que sua convenção seja isolada para uma classe como uma verdadeira convenção.

Caso contrário, se você optou por alterar você, você terá o abordagem, terá o código de implementação espalhado por toda a sua base de código.

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