移動開發 網路流量精簡攻略,網路流量攻略
作為一名移動開發人員,在過去的幾年裡也做過不少的項目,今天就來寫一篇淺薄的節省網路流量的文章,希望這篇文章對所有的移動開發人員,以及介面的服務端開發人員都有協助。
為什麼要精簡?(Why)
1.節省使用者的流量。
因為使用者的流量可能是要付費的,為使用者節省流量是每一個移動開發人員應當牢牢記住的原則之一
2.提高網路資料載入速度。
流量精簡了,介面擷取資料的速度會有提升,應用的一些頁面載入速度可以提升,這點我想大家也都能理解
3.減輕伺服器壓力。
通過最佳化介面,減少資料量,可以提高伺服器的利用率,減少伺服器並發壓力,一次請求串連佔用2S和佔用20ms對伺服器來說是很大的不同
如何精簡?(How)
1.網路介面API定義精簡
(a)介面定義:
在介面的設計階段,精簡非內容的欄位體積,如"productionDescription":"產品介紹xxx"可精簡為"pdDes":"產品介紹xxx";刪除與內容無關的欄位,現在發現還有好多介面返回類似"name":null這樣的欄位,其實這種資料完全可以過濾掉。
(b)請求最佳化:
有一些返回資料變更不太頻繁的介面,可以考慮添加版本號碼來進行狀態標記,只有當介面發送變化時才返回新資料,否則直接返回未變化讓用戶端使用緩衝;或者當檢測到狀態發生變化時才去請求相應的資料介面,否則不處理也是一個不錯的減少對伺服器請求的方式。
2.使用壓縮技術
(a)對於文本資料,啟用GZip進行資料壓縮是很好的選擇,對於文本資料的壓縮能達到80%,筆者之前有一個介面返回300K的資料,開啟壓縮後只有80k,效果明顯。在提交資料時也可以使用壓縮處理。
(b)對於圖片資料,使用Google的WebP格式會極大的減小圖片尺寸,經過測試,相同清晰度下,WebP格式是JPG格式的體積的30-40%左右,舉例來說,300K的JPG格式圖片,採用WebP格式進行傳輸大約只要90K。需要注意的是WebP格式在某些平台和瀏覽器下是預設不支援的,可能需要相應的庫來支援,但是為了節省流量還是值得的。
3.充分利用緩衝
緩衝使用的原理相信大家都知道,通過之前儲存資料到本地,在需要時通過判斷,不再請求伺服器的相同資料,直接從本地讀取出來使用。
但是在緩衝中有一個大傢伙:圖片。如果你的應用中有較多的圖片使用,一定要好好研究圖片的緩衝使用,一般開發人員自己請求圖片的,可以按照緩衝策略完成。但是用戶端中有一些特殊的頁面容易被大家忽略,如用戶端中的webview中的圖,就需要開發人員通過一定的手段,把webview和你的緩衝策略結合起來,達到完美的圖片緩衝使用。關於iOS下的圖片緩衝與WebView的結合,後續會再寫一篇詳細的文章介紹。
這篇文章總體來說比較泛,點出一些關鍵的點,希望能對開發人員有所啟發。