我有一个架构类型的问题。我正在创建一个时间入门iPhone应用程序。我有一个用于输入数据的选项卡和另一个用于按周和按月显示摘要数据的选项卡。我来自网络背景,因此我倾向于每次需要数据时都向服务器发出请求。对iphone不熟悉我不确定每次点击摘要标签时(通过viewWillAppear)发出摘要数据请求是否是个好主意。摘要数据是JSON,所以它相当轻量级。摘要数据不是静态的,因为它随着用户输入数据而变化。那么,什么时候应该检索数据的最佳做法是什么?有没有更好的方法来知道何时检索数据?
答案 0 :(得分:3)
我认为这不是一个好主意。您至少应该缓存数据,以便即使没有可用的网络连接,用户也可以访问这些条目。
您可能希望将数据结构镜像到核心数据模型,并通过在适当的时间调用服务器来更新它。如果您也在实现服务器端,我会以允许服务器仅发送已更改或尚未下载的条目的方式对我的请求建模。
修改强>
进一步解释这一点:即使数据是轻量级的,你也会在没有充分理由的情况下不断产生流量。有些人的数据计划是按时间而不是按量来衡量流量,他们会按照他们使用你应用的每一秒来支付费用......
答案 1 :(得分:0)
如果您还没有,请查看ASIHTTPRequest框架。它支持排队请求(NSOperationQueue
或ASINetworkQueue
)。您可以对某些请求进行排队,然后在[queue go]
回调中调用NSTimer
。
以反映网络活动时间(网络指示符)的方式实现UI,并在新的json数据可用时异步更新UI元素。
还尝试使用缓存 Toaster 建议(阅读ASIDownloadCache
等)。