2013-04-23 7 views
8

Ich versuche, einige FirefoxOS-Anwendungen zu tun, aber ich habe keine einfache Möglichkeit gesehen, lokale Daten zu speichern. Ich höre von IndexedDB, aber es scheint zu komplex. Gibt es noch eine Alternative? Wenn nicht, gibt es ein einfaches Tutorial dazu?Speichern Sie Daten in FirefoxOS

Ich habe darüber nachgedacht, remote Daten zu speichern und wiederherzustellen (eine croos Domain-Anfrage), aber ich habe einige Probleme mit den Berechtigungen. Gibt es ein Tutorial über XHR für FirefoxOS?

Danke.

+0

IndexedDB ist nicht so schwer. Der schwierigste Teil (zumindest für mich) war, meine Apps auf DB-Events zu gestalten. – Eldelshell

Antwort

7

Das beste IndexDB-Dokument, das ich finden kann, ist Using IndexDB in MDN.

Und es gibt viele Standard Firefox OS-Anwendungen (gaia) wie Galerie, Browser mit IndexDB. Sie können sehen, wie es im wirklichen Leben funktioniert.

Oder Sie können die leichtere window.localStorage API verwenden, die wie ein Wörterbuch funktioniert.

EDIT: Beachten Sie, dass localStorage nicht empfohlen wird, da es den Hauptthread blockiert. Sie sollten stattdessen gaia/shared/asyncStorage verwenden.

Für XHR Sie Firefox-OS-Boilerplate-App für eine Arbeits XHR Demo

+0

Ich möchte nur einen der Sätze im obigen Kommentar hervorheben: ** benutze gaia/shared/asyncStorage **, es ist eine einfache API, die sowohl die Vorteile von localStorage (es ist einfach) als auch denen von indexedDB (es ist hohe Leistung)). – Yoric

+0

danke ich habe den Satz hervorgehoben – gasolin

0

Sie Datastor in Firefox OS von Datenspeichern mit teilen Sie können auch diese Daten mit anderen nutzen können Apps und Sie können auch anderen Apps erlauben, im Datenspeicher zu schreiben oder nicht.

können Sie diesem Link folgen.

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

nur für die Verwendung von Daten speichern Ihre App zertifiziert müssen.

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