2013-05-29 18 views
11

Sto facendo un'applicazione di lista di cose da fare con HTML, CSS e JavaScript, e penso che il modo migliore per memorizzare i dati sarebbe un database locale. So come usare localStorage e sessionStorage e so anche come utilizzare un database online MySQL. Tuttavia, questa applicazione deve essere in grado di funzionare offline e dovrebbe memorizzare i suoi dati offline.
C'è un modo per farlo con solo HTML e JavaScript?Come creare un database locale offline


In risposta ai commenti:

"Hai detto che sa come utilizzare localStorage ... così quello che sembra essere il problema?"

@Lior Tutto quello che so di localStorage è che si può memorizzare un singolo risultato, come una variabile, mentre desidero memorizzare una riga con diverse colonne contenenti dati diffenent circa l'oggetto. Tuttavia, localStorage può contenere un oggetto e, in tal caso, fa riferimento alla normale notazione dell'oggetto?

Qualsiasi implementazione dipenderà probabilmente dai browser che gli utenti preferiscono utilizzare.

@paul Penso che Chrome sarà più popolare.


Va bene, vorrei chiarire che quello che stavo chiedendo era davvero Come posso fare questo con JavaScript e HTML piuttosto che C'è un modo ho potuto fare questo con solo HTML e JavaScript?. Fondamentalmente, volevo un tipo di database SQL che avrebbe salvato i suoi contenuti sulla macchina dell'utente anziché online.

Ciò che ha risolto il mio problema era l'utilizzo di WebDB o WEBSQL (penso che sia stato chiamato qualcosa del genere).

+0

Hai detto di sapere come usare 'localStorage' ... quindi quale sembra essere il problema? –

+0

Qualsiasi implementazione dipenderà probabilmente dai browser che gli utenti preferiscono utilizzare. – paul

+0

Con 'localStorage', non è possibile memorizzare in modo nativo un oggetto, ma il modo per aggirarlo è usando' JSON.stringify' per memorizzarlo, e 'JSON.parse' per recuperarlo – Ian

risposta

8

Ho circa 3 anni di ritardo nel rispondere a questo, ma considerando che non c'era alcuna discussione effettiva sulle opzioni disponibili al momento, e che il database che OP ha finito per scegliere is now deprecated, ho pensato di buttarmi nel mio due centesimi in materia.

In primo luogo, è necessario considerare se è effettivamente necessario un database lato client. Più specificatamente ...

  • Avete bisogno di relazioni esplicite o implicite tra i vostri dati?
  • E la possibilità di eseguire una query su tali articoli?
  • o più di 5 MB nello spazio?

Se hai risposto "no" a tutti i precedenti, vai con localStorage e risparmia dai mal di testa che sono le API WebSQL e IndexedDB. Beh, forse solo il secondo mal di testa, dal momento che il primo ha, come già detto, deprecato.

Altrimenti, IndexedDB è l'unica opzione per i database nativi lato client, dato che è l'unico che rimane sulla traccia degli standard del W3C.

Verificare BakedGoods se si desidera utilizzare uno di questi servizi e altro, senza dover scrivere codice di operazione di archiviazione di basso livello. Con esso, ponendo i dati nel primo database nativo incontrato che è supportato su un client, ad esempio, è semplice come:

bakedGoods.set({ 
    data: [{key: "key1", value: "val1"}, {key: "key2", value: "val2"}], 
    storageTypes: ["indexedDB", "webSQL"], 

    //Will be polyfilled with defaults for equivalent database structures 
    optionsObj: {conductDisjointly: false}, 

    complete: function(byStorageTypeStoredKeysObj, byStorageTypeErrorObj){} 
}); 

Oh, e per il bene di una completa trasparenza, BakedGoods è mantenuto da questo ragazzo giusto Qui :) .

Problemi correlati