Je cherche à trouver les meilleures pratiques pour la persistance des données Angularjs sur une application PhoneGap. J'utilise Ionic Framework en plus de cela, mais pas pertinent pour cette question car il est juste construit au-dessus de Angular & Cordova.
J'aime ça Angular reste flexible sur les solutions de persistance des données, c'est logique car c'est un framework web pas spécifiquement un framework d'application hybride ... j'aimerais savoir comment les gens résolvent cela.
Voici un aperçu:
J'ai regardé les options suivantes. Pouvez-vous fournir des commentaires sur l'un de ces éléments?
Désolé pour le long post. J'aimerais vraiment voir quelques réflexions sur les meilleures pratiques. J'adorerais un moyen Angular pour gérer la persistance de grandes données sur les applications mobiles hybrides.
Merci
PouchDB dev ici. Évidemment, je suis partial, mais voici mon point de vue:
La meilleure façon de contourner les quotas de stockage dans PhoneGap/Cordova est d'utiliser le plugin SQLite pour iOS/Android. Les performances ont également tendance à être meilleures, en particulier sur Android. ( Edit : dans Android post-KitKat moderne, c'est en fait pire.)
WebSQL a un langage de requête agréable, mais vous voulez être à l'épreuve du temps, c'est-à-dire ne pas vous enchaîner à une norme morte. Il y a aussi Windows Phone et Firefox OS à considérer.
Donc, si vous utilisez PouchDB et installez le plugin PhoneGap, cela fonctionnera sur plusieurs navigateurs et vous éviterez la limite de stockage sur iOS/Android. Gagner?
De plus, c'est mon expérience personnelle qui Angular convient à PouchDB comme PB&J, car Angular traite des objets JSON droits et Pouch aussi. (Comparez cela avec Ember et Backbone, qui ont des classes personnalisées que vous devez exporter/importer à partir de JSON - c'est un peu plus compliqué.)
Bonne chance avec quoi que tu choissises!
Vous pouvez utiliser localForage et ma mise en œuvre en angulaire: https://github.com/ocombe/angular-localForage Sur mobile, il utilisera soit indexedDB ou webSQL et la limite initiale sera de 50 Mo. La syntaxe sera vraiment facile à utiliser dans votre projet angular.
Indexeddb - Il existe une cale qui crée une couche de compatibilité pour la plupart des principaux navigateurs. Limite de 5M. Si je pouvais l'utiliser sur Sqlite, ce serait probablement un gagnant pour moi car plus de normes sont basées.
En fait, la limite pour WebSQL (la couche sous la cale que vous utiliserez réellement sous le capot) est de * 50 * M. Cependant, il existe une demande d'autorisation que vous pouvez utiliser pour obtenir plus de stockage. De plus, c'est ce que je recommanderais pour exactement les raisons que vous avez notées: les normes. La rumeur veut que Safari 7.1 soit livré avec le support IndexedDB.