2015-09-09 36 views
0

为了减少响应时间或缩短用户在呈现视图时等待数据的时间,我正在尝试确定与REST交互的最佳方法API。我会得到一系列有5-7个领域的项目,例如名称,标题,imgUrl。我可以做一个大的调用并遍历响应来获取我需要的数据,或者发出5-7个请求来获取我需要的确切信息。多个调用REST API或使用Javascript响应主体的一个调用

进行大型呼叫有两个问题。

  1. ALOT数据与每个项目一起返回。我测试了检索3个项目,大约需要899毫秒。
  2. 我需要的字段不能简单地被一个键引用。每个项目都以字段数组的形式返回。每个字段都是一个对象,我只能通过遍历每个对象并读取其field_id来确定我需要哪些字段。它返回的是这样的:

    项:[ {... FIELD_ID:3423423, ... },{ ... FIELD_ID:343434, ... } ... ]

我可以相当发送与ITEM_ID和FIELD_ID一个请求,我会得到我需要的领域,但我不得不做出这些调用7。哪个更好?

+0

需要更多信息。如何定义“更好”?时钟时间? CPU周期?数据占传输字节的百分比? –

+0

我正在开发一个使用phonegap/cordova的移动应用程序。那只会使用4G。这有助于所有? – inspired

+0

哪些指标对您最重要?你想减少传输字节数,减少服务器CPU周期,减少客户端CPU周期,减少请求/响应时间?你没有告诉我们目标是什么。 –

回答

1

我最近不得不作出类似的决定,最后我在后端添加了方法,将数据打包成更适合消费的格式。如果你能做到这一点,我会推荐这种方法。

我怀疑API超出了你的控制范围。在这种情况下,我可能会使用多个异步调用,以便在检索数据时提供反馈。使用异步调用和承诺,您可以让所有单独的作品在后台以任何顺序进行检索,然后从那里进行组装。

+1

这就是最终为我制定出最好的办法。因为我没有控制API I使用承诺进行多个API调用。 – inspired