2013-11-21 15 views
12

Ho lavorato con PhoneGap per poco tempo e ho qualche problema con il concetto di archiviazione in esso.PhoneGap: WebSql o SqLite?

Così, la documentazione afferma che c'è questa base di dati che è possibile aprire, ed è un'implementazione di SQLite. "Window.openDatabase restituisce un nuovo oggetto di database.

Questo metodo creerà un nuovo database SQL Lite e restituire un oggetto Database. Utilizzare l'oggetto database per manipolare i dati. " http://docs.phonegap.com/en/2.2.0/cordova_storage_storage.md.html#Database sto usando il mio webapp in questo momento:

var myBuggedDb = window.openDatabase(shortName, version, displayName,maxSize); 

Funziona come un fascino. Posso usarlo per fare domande, da seleziona a cancella. Tutto bene, giusto? Ma quando ispeziono e debuggo il mio codice, vedo che ciò che viene creato è un database WebSql. Ho anche consultato molti blog, wiki e altri luoghi per ottenere maggiori informazioni sull'argomento. Vede che un sacco di persone fanno casino con entrambe le tecnologie. La pagina Plugin di PhoneGap non ha nemmeno il plugin sqlite.

E ora, stiamo andando a cambiare la nostra app in modo da prendere da un LocalStorage un oggetto JSON e convertirlo. Voglio inserirlo nel nostro database. Ma ora sono confuso, non so se questo è webSql o SQLite. Qualcuno potrebbe chiarire? Funzionerà come SQLite o come WebSql dopo tutto, sul dispositivo?

EDIT: Se stai cercando questa domanda in futuro, segui con attenzione: Le tecnologie sono cambiate molto, il supporto indicizzato di DB sta crescendo, ci sono anche molte altre opzioni, come Lawchair e così via. Fai qualche ricerca prima di usare qualsiasi cosa!

risposta

6

HTML 5 ha questa implementazione di database e l'implementazione viene eseguita incorporando il database Sql Lite nel browser.

Browser come chrome e Safari hanno implementazioni di database Html5 implementate usando sqlLite definito come websql ma quando ero in contatto, Mozilla non stava implementando il Websql invece stavano implementando il DB indicizzato.

L'opzione migliore è l'utilizzo di Backbone.js o Lawnchair anche se internamente entrambi utilizzano websql ma le API racchiudono tutto per te.

Spero che questo aiuti.

+0

Sì, questo ha aiutato molto a chiarire. IndexedDB adesso per noi non è un'opzione a causa della compatibilità mobile. Ma sto controllando Lawnchair. Grazie, Varun! – Malavos

7

Vorrei suggerire di andare con WebSQL.Il ragione dettagliata è come indicato di seguito:

Lets andare avanti e prendere in considerazione le 3 principali piattaforme che si andrà con l'utilizzo di PhoneGap:

  • IOS: WebSQL-SUPPORTATOSQLite - PARZIALMENTE SUPPORTATO
  • Android: WebSQL - SUPPORTATOSQLite-pienamente supportato
  • di Windows: WebSQL-NON SUPPORTATOSQLite-NON SUPPORTATO

Quindi idealmente va come questo - Si dispone di Windows su cui si avvolgono un plugin WebSQL [inaffidabile] di sopra del quale si avvolge un plugin SQLite [altamente inaffidabili] .

Quindi - E 'ora la tua chiamata. Anche se si stanno facendo applicazioni PhoneGap sono mezzo per essere veloce e la creazione di strati di una pila rispetto ad un altro sarà sicuramente lo rendono lento.

+2

WebSQL è obsoleto. http://programmers.stackexchange.com/questions/220254/why-is-web-sql-database-deprecated –

Problemi correlati