移动:移动应用程序发出一对二并行请求?

时间:2012-12-21 13:10:44

标签: android iphone mobile request latency

我们在移动Android / iPhone应用程序中使用GooglePlaces来下载附近的商店。 此外,我们在数据库中有我们想要向用户显示的商店。

现在,只要我们的移动应用程序有一个位置,就会触发两个http请求,一个发送到GooglePlaces,一个发送到我们的服务器。一旦两个requets完成,app就会构建一个组合列表并将其显示给用户。我们在两个请求中都谈到总共50 Kb。

我们正考虑向服务器执行一个请求。然后,我们自己的服务器会向GooglePlaces提出请求,将两个列表组合在一起,并将两者都发送回移动客户端。 优势在于我们的移动应用程序只需要发出一个请求,但当我们的服务器连接到googleplaces时可能会增加延迟。

测试第二个选项对我们来说可能需要一整天。有没有其他人遇到过类似的问题?你会推荐什么?

1 个答案:

答案 0 :(得分:3)

这是一个权衡,但我们有类似的问题 - 我们的应用程序提出了独立请求(不是googleplaces,而是其他API),我们最终转换为单一的请求模型。我们的优势不仅仅是减少应用程序请求的数量。

  1. 导致我们改变的最大因素是我们使用的API在相对较短的时间内部署了更改。这要求我们对代码进行更改并重新部署应用程序。尽管如此,有些人没有更新并发送支持请求,想知道应用程序为何停止按预期工作。在单一请求模型中,我们能够避免这些更新(以及相关的支持问题)。当上游数据提供程序在API中发生更改时,我们会在服务器上处理到内部格式的转换。
  2. 与1)相关,我们已经能够在不更新应用程序的情况下合并其他数据源。当我们找到适合我们现有模型的新数据源时,我们可以在没有应用更新的情况下部署它们。
  3. 我们可以在服务器上缓存一些请求。您的请求可能过于本地化,您需要检查TOS是否允许缓存,但对于我们来说,我们已经能够通过缓存结果来缓解一些延迟。它还允许我们在API中断期间优雅地降级。

  4. 我们能够在将数据发送到设备之前对其进行优化。我们过滤掉我们知道服务器上的应用程序未使用的任何数据元素,并优化xml,以便下载大小减少20%-30%。