高性能iOS應用開發

IOS網絡優化點

1.DNS查找時間

為了最大限度地減少DNS查詢時間所產生的延遲,應遵循以下的實踐:
最小化應用使用的專有域名的數量。按照路由的一般工作方式,多個域名是不可避免的。最好能做到以下幾點:
身份管理(登錄、注銷、配置文件)
數據服務(API端點)
CDN(圖片和其他靜態人工產品)
在應用啟動時不需要連接所有的域名,可能只需要身份管理和初始畫面所需的數據。對于后續的子域名,嘗試更早地進行DNS解析(DNS預先下載)。

2.SSL握手時間

SSL握手主要是驗證服務器證書,同時共享用于通信的隨機密鑰。這一過程會耗費較多的時間。
遵循以下實踐優化SSL握手:
最大程度地減少應用發起的連接數。因此,也需要減少應用連接的獨有域名的數量。
復用連接:為所有的HTTPS請求添加頭(Connection:Keep-alive)
使用域分片(不理解)

3.網絡類型

遵循以下實踐使應用在各種網絡環境下都能正常使用:
設計時考慮不同的網絡類型。                                                                                                                              

對于流媒體,最好選擇HTTP實時流或任何可用的自適應比特率流媒體技術,這些技術可以在某一時刻對可用帶寬進行動態切換,切換至當前帶寬的最佳流質量,從而提供流暢的視頻播放。 
對于非流媒體內容,需要確定在單位拉取時應該下載多少數據,并且數據量必須時自適應的。                                                                                                                                                    

同樣,在弱網狀態下,不要打開視頻自動播放功能,節約用戶的流量第一。                                                                                                                                                                                   

對于自定義的非流媒體數據拉取,要保持對服務器的關注。讓客戶端發送網絡特征數,服務器決定返回的記錄條數,這樣可以在不發布新版本的情況下進行適應性改變。

出現失敗時,在隨機的、以指數增長的延遲后進行重試,但一定要設置最多的自動重試次數,不能不斷地刷服務器

設置強制刷新的間隔最短時間。當用戶明確要求刷新時,不要立即發出請求。相反,檢查與上次請求時間間隔是否小于閥值或已經存在該請求。

使用可到達性庫發現網絡狀態的變化。使用指示條向用戶展示不可用的狀態,讓用戶了解潛在的連接問題。

不要緩存網絡狀態。要始終使用網絡敏感度高的任務的最新值。

基于網絡類型下載內容,對于圖像,可預先展示小尺寸圖像,當用戶點擊查看原圖時下載原圖。 對于視頻內容,最好有一個與之關聯的預覽圖下。 可仿照WhatsApp對不同內容的網絡類型進行可選設置。

預先下載:在Wi-Fi網絡中預先下載用戶在后續時刻需要關注的內容。隨后可以使用緩存內容,最好分次下載內容,在使用之后關掉網絡連接。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容