le domande di progettazione HTML5 localStorage
-
26-09-2019 - |
Domanda
Qual è il modo migliore per archiviare i dati degli oggetti in localStorage di HTML5. Non ho lavorato molto con memorizzazione dei valori chiave.
Nella mia ricerca ho visto un paio di approcci diversi.
dati di esempio:
var commands = [
{invokes: 'Window', type: 'file', data: '/data/1'},
{invokes: 'Action', type: 'icon', data: '/data/2'},
{invokes: 'Window', type: 'file', data: '/data/3'}
];
Approccio 1: le chiavi dei negozi che rappresentano ogni dato
// for(...) {
localStorage["command[" + i + "].invokes"] = command[i].invokes
localStorage["command[" + i + "].type"] = command[i].type
localStorage["command[" + i + "].data"] = command[i].data
//}
Approccio 2: chiavi è il nome dell'entità, negozio json
localStorage["commands"] = JSON.stringify(commands);
Secondo approccio richiederebbe un JSON.parse ().
pro / contro?
Soluzione
Per la cronaca sono andato con approccio 2. La mia chiave è simile a un nome di tabella, il valore è un JSON stringata serie di record. Quando si recuperano la tabella è necessario chiamare JSON.parse ().
Altri suggerimenti
tecnologie per depositi locali sono: http: //madhukaudantha.blogspot.com/2011/02/client-side-storages-with-html-5.html ...
Approccio 2, OK .. ci sono più modi
Certamente il vostro approccio funziona bene ma lo fa si lascia un po 'bloccato con la convenzione si è scelto di andare avanti. Vorrei raccomandare che si considera avvolgendo l'accesso localStorage in una classe in modo che la vostra convenzione è isolato a una classe come un vero convenzione.
In caso contrario, si dovrebbe scegliere di cambiare ho ci si avvicina si avrà codice di implementazione sparsi su tutto il codice di base.