Идеи по синхронизации между iPhone и веб-сайтом - PullRequest
1 голос
/ 28 июля 2010

У меня есть приложение для iPhone, синхронизирующееся с веб-сайтом с помощью веб-службы. Я использую следующую процедуру синхронизации:

  1. Отправка элементов, которые необходимо синхронизировать, с iPhone на веб-сайт
  2. Добавить товары на сайт MySql база данных
  3. Отправить обратно элементы, которые нужно синхронизировать с веб-сайта на iPhone
  4. Добавление элементов в базу данных iPhone Sqlite

Все это делается с помощью одного запроса к серверу. Часто у пользователя есть только несколько элементов (<20) для синхронизации, но иногда у пользователя может быть 2000 элементов для синхронизации. Добавление 2000 элементов в базу данных MySql может занять некоторое время. Я использую транзакции и фиксирую на сайте при добавлении элементов, что-то вроде этого: </p>

mysqlTransaction.BeginTransaction();
foreach item sent from iPhone
{
    mysql.CommandText = //Sql query
    mysql.ExecuteNonQuery();
}
mysqlTransaction.Commit();

Иногда, когда пользователю нужно добавить много элементов, это может занять очень много времени. Поэтому моя идея состоит в том, чтобы немного изменить процедуру синхронизации, и вместо того, чтобы использовать один большой запрос, я делю запрос на куски, возможно, отправляя и получая 50 элементов за раз. Это вызовет больше, но быстрее запросов. Что вы думаете об этом? Как бы вы решили это? Правильно ли использовать транзакции и фиксировать на сервере?

1 Ответ

1 голос
/ 28 июля 2010

Я бы попытался сделать обновление с «iphone to server» и «server to iphone» одновременным и асинхронным, если это возможно. Таким образом, синхронизация будет быстрее, и приложение iphone не будет блокировать ожидание завершения всего процесса.

Хорошей идеей будет также разделение обновления на фреймы, если оно больше заданного размера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...