1

我正在编写一个 django 应用程序和 Iphone 应用程序,我需要使它们保持同步。用户可以在 Web 应用程序和 iphone 应用程序中删除、更新和创建新对象。当他们使用 iphone 上网时,两个应用程序必须同步。有没有简单的方法来做到这一点?

谢谢,

华金

4

2 回答 2

2

一般来说:没有简单的方法。但我将概述一种方法。

如果您不关心更改被覆盖:保留每条记录最近更改的时间戳,以及每次同步的时间戳。同步时,您会获得自上次同步以来 iPhone 上所有更新的列表,以及服务器上的所有更新。如果该记录的 iPhone 时间戳比服务器时间戳更新,则您从 iPhone 向服务器写入,反之亦然。

但你可能在乎。假设您编辑了一个名为“周五在哪里见面”的注释。它开始是空的。现在,在电话里,你写了“我的房子”。十分钟后,你的朋友在服务器上编辑了同一个便条,并写下了“The diner”。谁胜出?Stack Overflow 无法为您解答;它是特定于应用程序的。

好的,所以修改上面的方法:如果自上次同步以来记录的服务器版本和本地版本都已被编辑,那么您必须询问用户该怎么做。这就是基本算法。

如果您非常关心更改不会被覆盖,以至于您希望将更改合并到同一文档中的不同位置,那么您的系统将开始接近版本控制系统(如 Subversion 或 Git)的复杂性。一点都不简单。

于 2010-02-03T09:12:04.530 回答
0

没有内置的方法可以做到这一点。您需要在 iPhone 上保留一个服务器数据存储和一个本地数据存储,在线时,手动检查差异,看看您应该在服务器和 iPhone 端采取什么操作(删除、更新等)。

同步通常很困难。我建议你开始布局服务器和 iPhone 数据存储,想想它们是如何关联的,服务器或 iPhone 如何知道它们对应记录的状态,从而使它们保持同步。

于 2010-02-02T21:33:12.550 回答