2011-03-02 73 views
0

我有一个架构类型的问题给你。我正在创建一个时间输入iPhone应用程序。我有一个用于输入数据的选项卡,另一个用于按星期和按月显示摘要数据的选项卡。我来自网络背景,所以我倾向于在每次需要数据时向服务器发回请求。对iphone新手我不确定每次点击摘要选项卡时(通过viewWillAppear)是否提出汇总数据请求是个好主意。摘要数据是JSON,所以它相当轻量级。摘要数据不是静态的,因为它随用户输入数据而变化。那么,什么时候应该检索数据的最佳做法?有没有更好的方法来知道何时检索数据?iphone检索摘要页面的json数据的最佳实践

回答

3

我不认为这是一个好主意。您至少应该缓存数据,以便即使没有可用的网络连接,用户也可以访问条目。

您可能希望将数据结构镜像到核心数据模型中,并在适当的时间通过调用服务器来更新它。如果你也在实现服务器端,我会以一种允许服务器仅发送已更改或尚未下载的条目的方式对我的请求建模。

编辑:

为了解释这个进一步:即使数据是轻量级的,你不断产生的流量没有充分的理由。有些人有数据计划,衡量流量的时间,而不是数量,他们会真正支付他们使用您的应用程序的每一秒...

+0

更不用说,当你在移动数据连接时,延迟可能是最大的成本,所以返回的数据包很小的事实实际上并没有多大好处。所以,是的,我同意Toastor至少有一个本地缓存是最好的前进方向。 – Tommy 2011-03-02 14:50:57

+0

感谢您的反馈意见。这给了我很多想法。 – 2011-03-02 15:34:01

+0

想过这个之后,将“摘要”JSON数据结果保存到文件中,然后在数据更改时重写“摘要”文件是否合适?无论何时提交,我都可以通过异步调用来获取摘要数据。通过这种方式,如果点击摘要选项卡,将会载入“摘要”文件的内容(如果它存在),否则将获取它并创建摘要文件。 – 2011-03-02 19:48:12

0

看看ASIHTTPRequest框架,如果你还没有。它支持排队请求(使用NSOperationQueueASINetworkQueue)。您可以排队一些请求,然后在NSTimer回调中调用[queue go]

以反映网络何时处于活动状态(网络指示符)的方式实现您的用户界面,并在新的json数据可用时异步更新UI元素。

也尝试使用缓存作为烤面包机建议(阅读关于ASIDownloadCache等)。