2010-05-10 20 views
6

È piacevole quando non è presente un DB da conservare e gli utenti devono autenticarsi. Il mio professore mi ha chiesto di convertire un suo recente progetto di ricerca che usa Bespin e calcola gli errori fatti dagli utenti in un editor di codice come parte della sua ricerca.Strutture dati adatte per il salvataggio di file in localStorage (HTML5)?

L'obiettivo è convertire completamente da MySQL in HTML5 localStorage completamente. Non sembra così difficile da fare, anche se scavare nel suo codice potrebbe richiedere del tempo.

Domanda:
Ho bisogno di memorizzare i file e lo stato (ultimo posizionamento di cursore e file attivo). L'ho già fatto implementando le raccomandazioni in another stackoverflow thread. Ma gradirebbe il tuo input considerando come strutturare il contenuto da utilizzare.

mia soluzione attuale> HashMap come soluzione con oggetti JavaScript:

files = {}; 
// later, saving 
files[fileName] = data; 

E poi memorizzazione in localStorage utilizzando alcuni recommendations

localStorage.setObject("files", files); 
// Note that setObject(key, data) does not exist but is added 
// using Storage.prototype.setObject = function() {... 

Attualmente mi sto anche pensando di utilizzare un certo tipo di id numerico. In modo che i nomi possano essere cambiati senza problemi a rinominare la chiave nella hashmap. Qual è la tua opinione sul modo in cui è stata risolta e vuoi farlo in modo diverso?

risposta

8

Attualmente ho deciso dopo aver fatto qualche lettura e di ricerca che il modo migliore per andare è quello di memorizzare tutto in oggetti utilizzando oggetti letterali:

var files = {}; 
// Add loads of data 

E poi la loro memorizzazione utilizzando JSON.stringify():

localStorage.setItem('myFiles', JSON.stringify(files)); 

Ciò è una buona pratica perché memorizza grandi quantità di informazioni che è facile da memorizzare e accedere. Inoltre impedisce di ottenere confusione quando utilizzare il modo semplice di aggiungere informazioni coppia chiave-valore in localStorage e quando utilizzare la funzione localStorage.setItem(key, value)

+1

JSON è la risposta qui ... – gnarf

+0

a quanto pare si può semplicemente trattarlo come un oggetto: 'localStorage ['myFiles'] = JSON.stringify (files)' o 'localStorage.myFiles = JSON.stringify (files)' –

Problemi correlati