我有一个iPhone应用程序,它以XML格式从不同来源获取信息。例如,我有一个UITableView,在解析后以xml格式显示信息,来自这样的网址http://mysite.com/posts.php?top=100 - >返回这样的帖子信息
<postsList><post><title>test1</title><pubDate>..</pubdate></item><post><title>test1</title><pubDate>..</pubdate></item></postsList>
所以我只有一个请求只显示带有帖子的表格。当我点击一个单元格时,我必须对三个不同的来源进行三次调用,以收集我想要在单元格细节中显示的数据。
我正在考虑编写一些ASP.NET C#webservices,在调用时,收集我需要的所有信息,并在显示初始UITableView时返回单个响应(因此我发出一个请求)。
xml响应最大值为10-15kb,包含所有数据。根据我的经验,从性能的角度来看,网络访问(无线或3g)在iphone上是昂贵的,如果可能的话,我想在没有必要的情况下避免它。
所以问题是:从单个请求中获取尽可能多的数据是一个好主意,还是仅在需要数据时才更好(在这种情况下显示单元格时)?
答案 0 :(得分:3)
如果你的蜂窝连接速度很慢,延迟会比有限的带宽伤害你。这意味着由于延迟,建立连接将花费大量时间。 如果你说的是10-15 kb,我会立刻获得所有数据(当然,你应该异步地做到这一点)
假设您使用的是GPRS连接,即384kbps(至少在我们国家/地区)。延迟大约为500毫秒,因此建立HTTP连接可能需要大约1秒(最好的情况)。传输速度约为40KB / s。
使用单一下载:
使用10次小型下载:
这不是一项科学测试,但它只是说明了你应该如何处理这些决定。
答案 1 :(得分:0)
我一直在处理当前项目中的这些问题。它更多地与3G性能和延迟有关,而不是实际的iphone本身。即使数据量较大,一次性下载也会更有效率。
所以我同意菲利普的意见。