2016-12-24 71 views
0

首先,請讓我知道如果我應該將這個問題分成iOS和Android兩個版本。但是我對這兩方面都有所瞭解,並且從更大的意義上對此感到好奇,所以我想我會這樣問。這裏的問題是:iOS或Android上的併發網絡請求的效率如何?

與桌面不同,通常在移動應用程序上,我們儘量減少網絡請求的數量,在我的情況下,我一直只對每個視圖發出一個網絡請求,直到現在。但是我開始想知道如何同時向不同的API端點發出多個併發的網絡請求然後使用這些請求。

我開始考慮這種方法的原因是因爲我爲應用程序提取了大量數據,並且希望將它們分開以便可以分開進行維護。我知道網絡瀏覽器這樣做(因爲這是瀏覽器的工作原理),但我很好奇,如果有人有這種方式構建移動應用程序的經驗。

基本上,每當一個視圖加載時,我想向不同的API端點(2到4之間)發出多個請求,並使用組合結果,因爲我從它們全部收到結果,而不是從一個巨大的結果一個終點。

這是否足夠高性能?如果有幫助,我在iOS上使用AFNetworking,在Android上使用OKHTTP。

回答

1

這取決於。

假設每個HTTP請求的字節開銷爲100字節。這是一個粗略的近似值;在實踐中,開銷因HTTP標頭(包括cookie或認證憑證),URL(長查詢字符串和路徑不可用),HTTP版本(HTTP/2具有壓縮標頭)以及其他因素而異。

如果您將1個MiB響應拆分爲4個256 KiB響應,則每個響應的100個字節開銷可以忽略不計。它的數據量增加了0.03%。

但是,如果您將100字節的響應分成四個25字節的響應,則每個開銷的影響是顯着的。你將會傳輸150%的數據。