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

j'ai écrit une base de données HTML5 qui résume localStorage, indexedDB, et WebSQL. En utilisant HTML5 mes options de base de données ressemblent à ceci:

  • IE10 - indexedDB-1GB max
  • FireFox - indexedDB-unlimited
  • Safari - WebSQL-50MB max
  • Chrome - IndexedDB (ou web SQL) - illimité (avec le Quota HTML5 API ref1 , ref2 )
  • Opera - WebSQL (jusqu'à ce qu'ils passent à webkit?)- illimité

j'aimerais étendre la taille maximale de la base de données en utilisant PhoneGap ou L'API Quota. De la documentation de PhoneGap il ressemble à l'actuel base de données PhoneGap ecosphere est:

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

il y a aussi les plugins Phonegap SqlLite. iOS , Android , Windows Phone 8+


QUESTION 1 - ma compréhension de quelle base de données PhoneGap utilisera-t-elle est-elle exacte?

QUESTION 2 - existe-t-il une documentation solide sur la quantité de données qu'une base de données PhoneGap d'un type donné stockera? *S'il s'agit d'une base de données PhoneGap et non de l'implémentation de la base de données des navigateurs.

QUESTION 3 - PhoneGap envisage-t-elle d'adhérer aux Web Storage standards , abandonnant ainsi WebSQL en faveur de indexedDB? Si c'est le cas, pourrai-je quand même utiliser mon code WebSQL existant (via un PhoneGap-polyfill intégré) une fois le passage à indexedDB effectué?

QUESTION 4 - dans les situations où la taille de la base de données est limitée et ne peut pas être étendue par PhoneGap ou L'API Quota, mais l'accès au système de fichiers est disponible, est-il raisonnable de supposer que des données "supplémentaires" pourraient être stockées sur le système de fichiers de l'appareil ou sur une carte SD?

67
demandé sur Community 2013-03-29 20:24:09

3 réponses

ma compréhension de quelle base de données PhoneGap utilisera-t-elle est-elle exacte?

Oui. PhoneGap peut utiliser des bases de données LocalStorage, SessionStorage ou SQLite. Vous pouvez aussi, alternativement utiliser PhoneGap pour vous connecter aux classes natives des périphériques via un plugin, et passer les données des classes natives, qu'il stockera ensuite sur le périphérique.

Existe-t-il une documentation solide sur la quantité de données d'une base de données PhoneGap d'un type de magasin? Si C'est une base de données PhoneGap et non l'implémentation de la base de données des navigateurs.

  1. LocalStorage :: 10 MO
  2. SessionStorage :: 10 MO
  3. base de données SQLite:: 50MB-80MB (dépend de l'appareil)
  4. base de données natives utilisant le plugin call:: Unlimited data amount
  5. IndexedDB:: 5MB. Existantes encore. Mais très buggy, theres une liste des appareils / OS qui l'exécutent ici

est-ce que PhoneGap a des plans pour adhérer aux standards de stockage Web, abandonnant ainsi WebSQL en faveur d'indexedDB? Si c'est le cas, pourrai-je quand même utiliser mon code WebSQL existant (via un PhoneGap-polyfill intégré) une fois le passage à indexedDB effectué?

WebSQL est lentement déprécié. Son remplacement est IndexedDB ou SQLite. La meilleure option pour vous, cependant, est soit SQLite ou la base de données Native (par exemple, les données de base sur l'iOS)

dans les cas où la taille de la base de données est limitée et ne peut être étendue par PhoneGap ou L'API Quota, mais où l'accès au système de fichiers est disponible, est-il raisonnable de supposer que des données" supplémentaires " pourraient être stockées sur le système de fichiers de l'appareil ou sur une carte SD?

c'est certainement possible.

  • On Android vous pouvez spécifier l'emplacement de la base de données, et donc pousser les données à une base de données externe.
  • sur iOS, vous pouvez utiliser l'appel de base de données native 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 un fichier de base de données plat, comme un fichier texte, stocker vos données dans des listes de valeurs clés, et puis tirer ceux-ci dans 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 sur la façon de coder les bases de données SQLite et LocalStorage dans ma réponse .

96
répondu SashaZd 2017-05-23 11:46:46

j'ai pu faire un test sur une tablette Android 4.0.4. Il utilise WebSQL (une ancienne version de WebSQL qui ne supporte même pas db.changeVersion) et il m'a permis de remplir l'ensemble du disque dur (12 Go avec ma base de données). Je ne sais pas pour les autres appareils ou comment fonctionnent les cartes SD.

enter image description here

6
répondu user1873073 2013-04-03 13:20:40

IndexedDB -

  • il est incompatible avec de nombreux types d'OS et de versions mobiles
  • il est seulement compatible avec des versions très spécifiques de L'OS mobile
  • les développeurs ne peuvent pas utiliser SQL avec IndexedDB. Les instructions SQL peuvent être utilisées sur SQLite et WebSQL
  • la plupart des développeurs évitent d'utiliser IndexedDB autant qu'ils le peuvent""

WebSQL -

  • il a été déprécié par W3C ce qui signifie qu'il n'est plus entretenu ou développé
  • il nécessite un autre plugin appelé Polyfill pour permettre aux applications mobiles de fonctionner avec des systèmes D'exploitation mobiles populaires tels que Google Android et Apple iOS

SQLite -

  • il a reçu un prix de Google
  • SQLite a son site officiel. IndexedDB et WebSQL ne pas
  • sur Google, SQLite renvoie 1,8 million de résultats. WebSQL renvoie un peu moins de 700K de résultats et IndexedDB renvoie 282K de résultats.
  • développeur peut utiliser des déclarations SQL courantes avec SQLite.

si vous voulez un tutoriel rapide sur SQLite

Stockage De La base de données SQLite utilisant Android et Phonegap

3
répondu KershawRocks 2017-05-23 12:02:08