最近在做網(wǎng)絡(luò)請(qǐng)求的優(yōu)化,寫一些心得體會(huì),不足之處還請(qǐng)諒解。
本篇文章主要講網(wǎng)絡(luò)應(yīng)用層的優(yōu)化,網(wǎng)絡(luò)層優(yōu)化不在本篇文章范圍內(nèi),我也在學(xué)習(xí)這塊ing。
應(yīng)用層優(yōu)化主要分兩點(diǎn):
1:網(wǎng)絡(luò)請(qǐng)求開始時(shí)的優(yōu)化
2: 網(wǎng)絡(luò)請(qǐng)求回調(diào)的時(shí)候的優(yōu)化
在應(yīng)用層上來說,主要就這兩部分,當(dāng)然網(wǎng)絡(luò)層優(yōu)化也基本是這兩點(diǎn)。
首先來說下圖片親故的優(yōu)化
現(xiàn)在工程里普遍使用SD請(qǐng)求圖片,在優(yōu)化這塊的時(shí)候,我發(fā)現(xiàn)SD有個(gè)大坑,最經(jīng)典的SD用法使用SDWebImageManager下載圖片,但是問題來了,直接使用這個(gè)下載圖片有一個(gè)dispatch_async到主線程的過程,這塊如果主線程正在忙,那么這次請(qǐng)求回等主線程結(jié)束當(dāng)前任務(wù)之后在下載圖片。
我采取的優(yōu)化方式是舍棄SDWebImageManager,使用SDWebImageDownloader下載圖片。
網(wǎng)絡(luò)請(qǐng)求完成之后,圖片請(qǐng)求的回調(diào),設(shè)計(jì)UI操作必須dispatch到主線程,如果主線程繁忙,這個(gè)回調(diào)依然會(huì)被阻塞。