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 sans rapport avec cette question, car elle est construite sur Angular & Cordova.
J’aime le fait qu’Angular rest flexible sur les solutions de persistance des données, car il s’agit d’un framework Web qui n’est pas spécifiquement un framework d’applications hybrides … j’aimerais savoir comment les gens résolvent cela.
Voici un aperçu:
J’ai examiné les options suivantes. Pouvez-vous nous faire part de vos commentaires?
Désolé pour le long post. J’aimerais vraiment avoir quelques reflections sur les meilleures pratiques. Aimerait un moyen angular pour gérer la persistance de données volumineuses sur les applications mobiles hybrides.
Merci
PouchDB dev ici. Évidemment, je suis partial, mais voici ma prise:
La meilleure façon de contourner les quotas de stockage dans PhoneGap / Cordova consiste à utiliser le plug-in 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 bon langage de requête, 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 plug-in PhoneGap, cela fonctionnera sur plusieurs navigateurs et vous éviterez la limite de stockage sur iOS / Android. Gagner?
En outre, mon expérience personnelle montre qu’Angular est compatible avec PouchDB comme PB & J, puisque Angular gère les objects JSON rectilignes, tout comme Pouch. (Comparez cela à Ember et Backbone, qui ont des classes personnalisées que vous devez exporter / importer depuis JSON – c’est un peu plus compliqué).
Bonne chance avec quoi que tu choissises!
Vous pouvez utiliser localForage et mon implémentation angular: https://github.com/ocombe/angular-localForage Sur mobile, il utilisera indexedDB ou webSQL et la limite initiale sera 50mb. La syntaxe sera très facile à utiliser dans votre projet angular.
Indexeddb – Il existe une cale qui construit la couche de compatibilité pour la plupart des principaux navigateurs. Limite de 5M Si je pouvais utiliser cela en plus de Sqlite, cela serait un avantage pour moi, puisque plus de standards sont basés.
En fait, la limite pour WebSQL (la couche sous la cale que vous utiliserez sous le capot) est * 50 * M. Cependant, il existe une demande d’autorisation que vous pouvez utiliser pour obtenir plus de stockage. En outre, 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.