对于我来说,我考虑的是这样的:
1)在iPhone中存储上次修改日期
2)启动时发送消息,例如getNewData.php?lastModifiedDate=...
3)服务器将处理并仅从上次以来发送修改后的数据。
4)此数据格式如下: <+> //将其添加到SQLite/CoreData中 <-> //删除此项 <%>newValue //新的修改值
我不想为每个属性制作<+>、<- >、<%>……,因为这会太复杂,所以可能在接收到<%>字段时,我只需删除具有指定ID的数据,然后再次添加它(假设此处的ID不是自动递增的字段)。
5)一旦下载并更新了所有内容,我将更新“上次修改日期”字段。
这种策略的主要问题是:如果我在更新某些内容时网络中断=>上次修改日期尚未更新=>下次重新启动应用程序时,我将不得不再次进行相同的操作。更不用说潜在的不一致数据了。如果我为更新使用临时表并使整个过程原子化,它将起作用,但再次,如果更新太长(大量数据更改),用户必须等待很长时间,直到新数据可用。我应该为每个数据字段使用Last-Modified-Date并逐步更新数据吗?