2013-04-23 4 views
8

Sto provando a fare alcune app FirefoxOS, ma non ho visto alcun modo semplice per memorizzare i dati locali. Ho sentito parlare di IndexedDB, ma sembra troppo complesso. C'è qualche altra alternativa? Se no, c'è qualche semplice tutorial su di esso?Memorizza i dati in FirefoxOS

Ho preso in considerazione di memorizzare e ripristinare i dati remoti (facendo una richiesta di dominio croos), ma sto avendo alcuni problemi con le autorizzazioni. C'è qualche tutorial su XHR per FirefoxOS?

Grazie.

+0

IndexedDB non è così difficile. La parte più difficile (almeno per me) è stata quella di architettare le mie app attorno agli eventi DB. – Eldelshell

risposta

7

Il miglior documento IndexDB che posso trovare è Using IndexDB in MDN.

E ci sono molte app predefinite di Firefox OS (gaia) come galleria, browser che utilizza IndexDB. Puoi vedere come funziona nella vita reale.

Oppure è possibile utilizzare l'API più leggera window.localStorage, che funziona come un dizionario.

localStorage.setItem(key, value); 
localStorage.getItem(key); 

MODIFICA: notare che localStorage non è consigliato perché blocca il thread principale. Dovresti usare invece gaia/shared/asyncStorage.

Per XHR è possibile controllare Firefox-OS-Boilerplate-App per un XHR lavoro demo

+0

Voglio solo evidenziare una delle frasi nel commento sopra: ** usa gaia/shared/asyncStorage **, è una semplice API che ha sia i vantaggi di localStorage (è semplice) sia quelli di indexedDB (è ad alte prestazioni). – Yoric

+0

grazie Ho evidenziato la frase – gasolin

0

È possibile utilizzare DataStore in Firefox Os utilizzando archivio dati è anche possibile condividere i dati con altri app e puoi anche dare il permesso ad altre app di scrivere nell'archivio dati o meno.

è possibile seguire questo link.

https://developer.mozilla.org/en-US/docs/Archive/Firefox_OS/API/Data_Store_API/Using_the_Data_Store_API

Solo per uso archivio dati vostra applicazione hanno bisogno di certificati.

navigator.getDataStores('mystore').then((store)=>{ 
    store[0].getLength().then((ln)=> console.log(ln)) 
})