J'ai synchronisé une application iPhone avec un site Web à l'aide d'un service Web. La procédure de synchronisation J'utilise est la suivante:Idées de synchronisation entre l'iPhone et le site Web
- Envoyer les éléments qui doivent synchroniser l'iPhone sur le site
- Ajouter les articles sur le site MySql
- renverrons les articles qui doivent synchroniser sur le site Web pour iPhone
- Ajouter les articles sur la base de données SQLite iPhone
Tout cela se fait à l'aide d'une requête au serveur. Souvent, l'utilisateur n'a que quelques éléments à synchroniser (< 20), mais parfois un utilisateur peut avoir 2000 éléments à synchroniser. L'ajout de 2000 éléments à une base de données MySql peut prendre un certain temps. J'utilise les transactions et engager sur le site lors de l'ajout des éléments, quelque chose comme ceci:
mysqlTransaction.BeginTransaction();
foreach item sent from iPhone
{
mysql.CommandText = //Sql query
mysql.ExecuteNonQuery();
}
mysqlTransaction.Commit();
Parfois, lorsqu'un utilisateur a beaucoup d'éléments à ajouter, cela peut prendre trèèès longtemps. Mon idée est donc de changer un peu la procédure de synchronisation et, au lieu d'utiliser une requête de grande taille, je divise la requête en morceaux, en envoyant et en recevant 50 éléments à la fois. Cela entraînera des demandes plus nombreuses mais plus rapides. Quelles sont vos idées à ce sujet? Comment le résoudriez-vous? Est-ce la bonne chose à utiliser les transactions et commettre sur le serveur?
Je n'utilise que les transactions pour les requêtes qui sont inexplicablement liés d'une certaine façon, que si l'on requête a échoué, causerait une sorte de questions de corruption ou de l'intégrité des données. Je comprends pourquoi vous utilisez des transactions ici, mais je ne voudrais pas utiliser une transaction, sauf si vous voulez donner une modification à confirmer. D'autres personnes peuvent être en désaccord. Je ne suis pas sûr. – Layke
Mon idée d'utiliser les transactions ici était de faire l'insertion d'articles plus rapidement que si vous n'utilisez pas de transactions. Est-ce que je me trompe ici? – Mrbiggerm