关于iPhone和网站之间同步的想法

时间:2010-07-28 09:26:20

标签: iphone web-services synchronization

我有一个使用网络服务同步网站的iPhone应用程序。我正在使用的同步过程如下:

  1. 发送需要从iPhone同步到网站的项目
  2. 将项目添加到网站MySql数据库
  3. 将需要从网站同步的项目发回iPhone
  4. 在iPhone Sqlite数据库上添加项目
  5. 所有这一切都是使用一个请求到服务器完成的。用户通常只有几个项目(< 20)要同步,但有时用户可能有2000个要同步的项目。将2000个项目添加到MySql数据库可能需要一些时间。我在添加项目时在网站上使用交易和提交,如下所示:

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

    有时,当用户要添加大量项目时,这可能会花费很长时间。因此,我的想法是稍微改变同步过程,而不是使用一个大的请求,我将请求分成块,也许一次发送和接收50个项目。这将导致更多但更快的请求。你对此有何看法?你会如何解决它?在服务器上使用事务和提交是正确的吗?

1 个答案:

答案 0 :(得分:1)

如果可能的话,我会尝试从“iphone到服务器”和“服务器到iphone”进行并发和异步更新。这样同步将更快,并且iphone应用程序不会阻止等待整个过程完成。

如果更新大于给定大小,那么将更新划分为帧也是一个好主意。