67 votes

Quelle base de données PhoneGap utilise-t-elle et quelle est la taille limite?

J'ai écrit un HTML5 base de données de résumés localStorage, indexedDB, et WebSQL. L'utilisation de droite HTML5 mes options de base de données ressembler à ceci:

  • IE10 - indexedDB - 1 GO max
  • FireFox - indexedDB - illimité
  • Safari - WebSQL - 50 MO max
  • Chrome - IndexedDB (ou Web SQL) - illimité (avec le HTML5 Quota API ref1, ref2)
  • Opéra - WebSQL (jusqu'à ce qu'ils passer à webkit?) - illimité

Je voudrais élargir la taille maximale de la base à l'aide de PhoneGap ou le Quota de l'API. De PhoneGap de la documentation, il ressemble à l'actuel PhoneGap base de données écosphère est:

  • WebSQL - Android, Blackberry, iPhone, et webOS
  • localStorage - Windows Phone 7
  • indexedDB - Windows Phone 8 et, je suppose, partout indexedDB est disponible, mais WebSQL ne l'est pas.

Il y a aussi les PhoneGap SqlLite plugins. iOS, Android, Windows Phone 8+


QUESTION 1 - Est ma compréhension de la base de données que PhoneGap utilisera précis?

QUESTION 2 - Est-il solide documentation sur la quantité de données PhoneGap base de données d'un type de magasin? *Si c'est un PhoneGap base de données et non les navigateurs de la base de données de mise en œuvre.

QUESTION 3 - Ne PhoneGap ont des plans d'adhérer à la le Web de Stockage des normes abandonnant ainsi WebSQL en faveur de indexedDB? Si oui, vais-je encore être en mesure d'utiliser mon WebSQL code (via un construit en PhoneGap-polyfill) une fois que le commutateur d'indexedDB?

QUESTION 4 - Dans les situations où la taille de la base est limitée et ne peut être étendu par PhoneGap ou le Quota de l'API, mais l'accès au système de fichiers est disponible, est-il raisonnable de supposer que les "extra" les données peuvent être stockées sur le système de fichier du périphérique ou sur une carte SD?

95voto

SashaZd Points 1879

QUESTION 1 - Est ma compréhension de la base de données que PhoneGap utilisera précis?

Oui, il est. PhoneGap pouvez utiliser LocalStorage, SessionStorage, ou les bases de données SQLite. Vous pouvez également, vous pouvez également utiliser PhoneGap pour se connecter à des appareils de classes natives via un plugin, et passer le natif de données de la classe, qu'il va ensuite le stocker sur l'appareil.

QUESTION 2 - Est-il solide documentation sur la quantité de données PhoneGap base de données d'un type de magasin? *Si c'est un PhoneGap base de données et non les navigateurs de la base de données de mise en œuvre.

  1. LocalStorage :: 10 MO
  2. SessionStorage :: 10 MO
  3. La Base de données SQLite :: 50-80 MO (dépend de l'appareil)
  4. Natif de la Base de données en utilisant le plugin appel :: quantité Illimitée de données
  5. IndexedDB :: 5MB. Existantes encore. Mais très bogué, il y a une liste des appareils et des systèmes d'exploitation qui s'exécutent ici

QUESTION 3 - Ne PhoneGap ont des plans pour respecter le Web Storage normes abandonnant ainsi WebSQL en faveur de indexedDB? Si oui, vais-je encore être en mesure d'utiliser mon WebSQL code (via un construit en PhoneGap-polyfill) une fois que le commutateur d'indexedDB?

WebSQL est peu à peu obsolète. Son remplacement est IndexedDB ou SQLite. La meilleure option pour vous, cependant, est soit SQLite ou de la Base de données Native (par exemple Données de Base de l'iOS)

QUESTION 4 - Dans les situations où la taille de la base est limitée et ne peut être étendu par PhoneGap ou le Quota de l'API, mais l'accès au système de fichiers est disponible, est-il raisonnable de supposer que les "extra" les données peuvent être stockées sur le système de fichier du périphérique ou sur une carte SD?

Il est certainement possible. - Sur Android, vous pouvez spécifier l'emplacement de la base de données, et donc envoyer des données à une base de données externe. Sur iOS, vous pouvez utiliser le natif de la base de données pour stocker des données sur CoreData, il n'y a pas de mémoire externe. - Dans tous les cas de tous les OS, vous pouvez créer une plate fichier de base de données, comme un fichier Texte, enregistrez vos données dans les listes de valeurs, puis tirez ceux de votre application à la première exécution. Méfiez-vous de la gestion de la mémoire dans ce cas.

J'ai ajouté une explication de la façon d'aller sur le codage de l'SQLite et LocalStorage bases de données sur ce lien :: Phonegap en mode Hors connexion de la Base de données

6voto

user1873073 Points 671

J'ai pu faire un test sur une tablette Android 4.0.4. Il utilise WebSQL (une ancienne version de WebSQL qui ne supportait même pas db.changeVersion) et m'a permis de remplir le disque dur en entier (12 Go avec ma base de données). Je ne connais pas les autres périphériques ni le fonctionnement des cartes SD.

entrez la description de l'image ici

3voto

KershawRocks Points 69

IndexedDB -

  • Il est incompatible avec de nombreux types de système d'exploitation mobile et versions
  • Il est uniquement compatible avec de très spécifique versions de l'OS mobile
  • Les développeurs ne peuvent pas utiliser SQL avec IndexedDB. SQL peut être utilisé sur SQLite et WebSQL
  • La plupart des développeurs évitent l'aide d'IndexedDB autant qu'ils le peuvent

WebSQL -

  • Il a été désapprouvée par le W3C qui signifie qu'il n'est plus maintenu ou développé
  • Il nécessite un autre plugin appelé Polyfill pour permettre à des applications mobiles pour fonctionner avec les OS mobiles comme Android de Google et iOS d'Apple

SQLite -

  • Il a reçu un prix à partir de Google
  • SQLite a son site officiel. IndexedDB et WebSQL ne pas
  • Sur Google, SQLite renvoie 1.8 millions de résultats. WebSQL retourne un peu moins de 700 KO résultats et IndexedDB retourne 282K résultats.
  • Développeur commun des instructions SQL avec SQLite.

Si vous voulez un tutoriel rapide sur SQLite

Le stockage de base de données SQLite en utilisant Android et Phonegap

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X