Perguntas de design de localização HTML5
-
26-09-2019 - |
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?
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.