我有一些查询。首先让我们来看一个正常应用程序所具有的iPhone应用程序流程。 (基于内容的应用程序)iPhone数据库和服务器数据库 - iPhone只更新修改
- 应用推出&检查网络可用性
- 如果网络可用 - iPhone使用Web服务或API
- 我们可以存储这些响应(Web服务响应/ API将数据下载响应)到* .plist文件中。
当我们需要更新数据时,再次将web服务名为&再次将整个数据存储为* .plist文件。
现在,假设 - 我在服务器上有一张表'电子书'&它有超过500个条目。
- 调用API/Web服务将给出500条记录的响应。
- 确定 - 第一次可以等待所有响应(我们可能会使用LIBXML2作为块)
- 但是如果我们经常使用web服务下载此文件会怎么样。
这里有两个缺点
- 无线上网的不必要使用
- iPhone的CPU开销
- 服务器的CPU开销。
你正在接近我吗?
假设服务器上没有改变为什么iPhone需要再次调用API。意思是没有变化的条目&条目是500,因为它是那么为什么要再次下载它?
让我再次澄清 - 问题。
假设
- 的应用程序有一个服务器+数据库=客户(目前为500个记录)
- 有5个iPhone以检索该数据
- 所有iPhone下载500个记录离线
- 现在,服务器已添加新纪录501
- iPhone必须只下载1条记录,而不是501条。
这怎么可能?
@克劳斯布洛克 - 想法很好 - 你能给我一些简要的介绍吗? – 2010-05-04 09:45:24
@Claus Broch - 因此,iPhone在调用Web服务时会给出时间戳,服务器和服务器将检查每个数据库记录的时间戳记。 serverTimeStamp == iPhoneTimeStamp - 用于每条记录。假设有500个iPhone应用程序用户。服务器会发生什么? – 2010-05-04 09:47:09
我假设你在某种数据库中存储数据,所以它只是构造一个执行过滤的SQL语句(例如类似于“SELECT * from table mydata WHERE timestamp> = querystamp”)的事情。可能服务器会比每次提供完整内容的过滤更少。然而,这只是一个粗略的猜测,你的里程可能会有所不同。 – 2010-05-04 11:04:47