Stratégies pour la synchronisation des données avec le serveur de PhoneGap

Je commence ma première PhoneGap projet, en utilisant AngularJS. C'est une base de données axée application, à l'aide d'une API REST comme le backend. Pour commencer, je ne vais pas stocker des données localement à tous, afin de ne pas faire grand-chose sans Internet.

Cependant, j'aimerais par la suite comme pour stocker des données localement, et la synchronisation lors de la connexion Internet est disponible, car je sais que personnellement, j'ai désactiver les connexions Internet sur mon téléphone à la fois (avions, batterie faible), ou n'ont pas les bars. Je me demandais si vous pouviez me pointer vers quelques bonnes ressources pour ce type de synchronisation. Certains ont recommandé les bibliothèques? Ou peut-être quelques discussions des pièges et comment à faire le tour de leur. J'ai Googlé un peu, mais je pense que maintenant, je ne sais pas les questions à poser.

Aussi, mon intention de construire dépendant d'Internet d'abord, puis ajouter la synchronisation.... Est-ce une bonne idée, ou suis-je en me tirer une balle dans le pied? Ai-je besoin pour construire la synchronisation depuis le début?

J'ai eu quelqu'un suggérer bâtiment, l'application locale seulement en premier, plutôt que l'Internet uniquement la première partie, qui a une certaine logique à cela. Le stockage à distance est importante pour moi. Je sais que la décision il y a beaucoup à faire avec mes objectifs pour l'app, mais du point de ce bâtiment, avec l'objectif final étant de stockage local + stockage sur Internet, et dans les deux sens de la synchronisation, ce qui va être plus facile? Ou faut-il quand même faire une différence?

Pour commencer, je suis en train de penser à l'aide des Uuid, plutôt que séquentielle entier clés primaires. J'ai aussi pensé au sujet de l'attribution de chaque appareil un ID qui est le préfixe sur toutes les clés qu'il génère, mais qui semble délicat. Personne a utilisé la technique? Pensées?

Je suppose que j'ai besoin d'un bon système pour dire que les données ont été synchronisées. Sur le côté client, je suppose que tous les enregistrements créés/modifiés, peuvent être marqués pour la synchronisation. Mais sur le côté serveur, vous avez plusieurs clients, de sorte que ça ne marcherait pas. Je suppose que vous pourriez avoir un last_updated timestamp, et tout synchroniser mise à jour de synchronisation de la dernière synchronisation réussie.

Que sur les documents édités en plusieurs endroits? Si deux client modifier, puis à synchroniser, vous avez une certaine ambiguïté au sujet de la fusion, comme lors de la fusion des branches de git ou d'autres systèmes de contrôle de version. Comment gérez-vous cela? Je suppose que git n'en stockant des diff de chaque livraison. Je suppose que vous pouvez stocker des diff? Plus je pense à ce, le plus compliqué, il sonne. Suis-je sur-la pensée ou de la sous-pensée?

Ce sujet de côté client de stockage? J'ai pensé à SQLite, ou le PhoneGap local de stockage chose (http://docs.phonegap.com/en/1.2.0/phonegap_storage_storage.md.html). Recommandations? La synchronisation sera plus une API REST, l'échange de JSON, donc je pensais à quelque chose qui en fait stocke les données en JSON, ou quelque chose de JSON-comme c'est facile de convertir, ce serait bien. D'autre part, si je vais avoir à échanger certains de tri de données diff format, peut-être que c'est ce que j'ai besoin de stockage?

  • Quelqu'un a utilisé ce? pouchdb.com Semble être pertinent pour beaucoup de mes préoccupations, mais aimerais entendre vos pensées si vous avez été vers le bas de cette route?
InformationsquelleAutor eimajenthat | 2013-11-02