通信層優化思路小結

通信測試最好使用2G測試,可以慢,但要能跑通,若出現“無法連接到網絡”或者“網絡連 接超時”的對話框,就是開發人員必須要解決的問題了。

  • 1、接口返回的大數據,要使用 gzip 進行壓縮
注意:大於 1KB 才進行壓縮, 否則得不償失。經過 gzip 壓縮後,返回的數據量大幅減少。
  • 2、ProtoBuffer協議是二進制格式的,所以在表示大數據時,空間比 JSON 小很多。
  • 3、減少網絡訪問次數,能調用一次取到數據的,就不要調用兩次
  • 4、HTTP 協議的速 度遠不如使用 TCP協議,因爲後者是長連接。缺點是一臺服務器能支持的長連接個數不多,所以需要更多的服務器集成。
  • 5、要建立取消網絡請求的機制。頁面跳轉等情況,如果無需再進行請求的直接中斷請求。過多的請求可能會使網絡底層的請求隊列已經被阻塞
無論是 iOS 還是Android,
都應該在基類(BaseViewController 或者 BaseActivity)中提 供一個 cancelRequest的方法,
用以在離開當前頁面時清空網絡請求隊列。
  • 6、增加重試機制(post 請求是不建議有重試機制的)。
一般將獲取數據 的請求接口都定義爲 get;而把操作數據的請求接口都定義爲 post。

可以爲所有的 get 請求配置重試機制,比如 get 請求失敗後重試 3 次。
post 下單接口是個 post 請求,如果請求失敗那麼就會重試 3 次,直到下單成功。
但是有時候 post 請求並沒有失 敗,而是超時了,超時時間是 30 秒,但是卻 31 秒返回了,如果因此而重新發起下單請求, 那麼就會連續下單兩次。

所以 post 請求是不建議有重試機制的。
此外,對所有的 post 請求, 都要增加防止用戶 1 分鐘內頻繁發起相同請求的機制,這樣就能有效防止重複下單、重複發 表評論、重複註冊等操作。

如果 post 請求具有防重機制,那麼倒是可以增加重試機制。

需要服務器端靈活配置重試的次數,可以是 0 次,意味着不會重試。在 App 啓動的時候,告訴 App 所有接口的重試次數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章