在iphone和服务器之间同步数据和缓存数据的策略

时间:2011-01-02 02:02:58

标签: iphone objective-c

假设我有一个TODO列表iphone应用程序,可以从Web应用程序和iphone应用程序进行编辑/查看。

当在iPhone上,当用户查看他所有的待办事项列表或子项时,我认为每次用户查看特定列表时,它不应该每次都访问Web应用程序API,而是在本地缓存值,只在事情发生变化时才点击网页。

这种类型的场景有哪些策略?

4 个答案:

答案 0 :(得分:0)

我同意你的脏 - 否则不要联系服务器点。我认为这一点非常简单易行。

但是,在这种情况下要小心:它变脏但同时,设备无法访问互联网。在这种情况下,我建议您经常检查互联网辅助功能(即使您的应用程序在后台),并尝试尽可能地访问您的服务器并进行更新。

答案 1 :(得分:0)

这是一个棘手的问题。我目前正在开发一个需要执行类似同步的应用程序,我还没有决定如何处理它。

你是对的,因为你不想反复上网。它会大大减慢应用程序的速度。保持本地缓存是可行的方法。

一个缺点是用户可能在网络上更改/添加项目,而您不会在手机上看到它。您需要有一个刷新按钮(例如,在Mail应用程序中),以允许用户获取更改。

然后您遇到解决冲突的问题。假设在手机和网络上都编辑了相同的项目。用户如何选择要保留哪一个,或者它们是否重复?

答案 2 :(得分:0)

我认为最好的方法是在CoreData中复制服务器的架构。然后从本地数据库加载给定元素,并在后台中出去,如果设备具有互联网连接,则检查该元素是否有更新。您每次都在点击数据库,但用户不会因此过程而变慢。

答案 3 :(得分:0)

每次查看列表时都不应该查询互联网。

但是当您对其进行更新或编辑时,您也应该更新服务器。这将使你的生活变得更加简单。这样,当用户更新他在Web服务器中删除的项目时,服务器就会抛出该请求......