2015-09-09 39 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