国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

【讀書筆記】iOS網絡-同步請求,隊列式異步請求,異步請求的區別

2019-11-14 18:10:13
字體:
來源:轉載
供稿:網友

一,同步請求的最佳實踐。

1,只在后臺過程中使用同步請求,除非確定訪問的是本地文件資源,否則請不要在主線程上使用。

2,只有在知道返回的數據不會超出應用的內存時才使用同步請求。記住,整個響應體都會位于代碼的內存中。如果響應很大,那么可能導致應用出現內存溢出問題。此外,當代碼將響應解析為所需的格式時可能需要復制返回的數據,這會導致內存增加一倍。

3,在處理返回的數據前,驗證錯誤與調用返回的HTTP響應狀態碼。

4,如果源URL需要驗證,那么不使用同步請求,因為同步框架并不支持對認證請求做出響應。唯一的例外是BASIC認證,因為這時認證信息可以通過URL或請求頭進行傳遞。以這種方式執行認證會增加應用與服務器之間的耦合度,從而導致整個應用變得更加脆弱。如果請求不使用HTTPS協議,那么還會在明文中傳遞認證信息。

5,如果需要向用戶提供進度條,那不要使用同步請求,因為請求是原子的,無法提供中間的進行指示信息。

6,如果需要通過流解析器來漸進響應數據,那么不要使用同步請求。

7,如果在請求完成前需要取消,那么不要使用同步請求。

 

二,隊列式異步請求的最佳實踐。

1,只有知道返回的數據不會超出應用的內存的時候才使用隊列式異步請求。記住,整個響應體都會位于代碼的內存中。如果響應很大,那么可能導致應用出現內存溢出問題,此外,當代碼將響應解析為所需的格式時可能需要復制返回的數據,這個導致內存增加一倍。

2,為所有操作使用單一的NSOperationQueue,根據服務器的能力以及預期的肉絡狀況控制當前操作的最大數量。

3,在處理返回的數據前驗證錯誤與調用返回的HTTP信啊感應狀態碼。

4,如果源URL需要驗證,那么不要使用隊列式異步請求,因為該功能不支持對認證請求做出響應。如果服務需要這種認證,那么可以將BASIC認證信息放在提供給請求的URL中。

5如果需要向用戶提供進度條,那么不要使用隊列式異步請求,因為請求是原子的,無法提供中間的進度指示信息。

6,如果需要通過流解析器來漸進解析響應數據,那么不要使用隊列式異步請求。

7,如果請求在完成前需要取消,那么不要使用隊列式異步請求。

三,異步請求的最佳實踐。

1,對于大的上傳或下載來說,請使用異步請求以減少應用的內存占用量。

2,在需要認證的情況下請使用異步請求。

3,如果需要向用戶提供進度反饋,那么請使用異步請求。

4,在后臺線程上使用異步請求要小心,請提供一個運行循環。

5,對于可以在后臺線程的請求隊列中輕松調度和完成的簡單的請求來說,這時使用異步請求有些過猶不及。

6,如果使用輸入流來上傳數據,請實現connecton:newBodyStream:方法以避免對輸入流的復制。

 

參考資料:《iOS網絡高級編程-iphone和iPad的企業應用開發》


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 璧山县| 灵宝市| 阳原县| 合山市| 吉隆县| 富宁县| 普安县| 响水县| 高邑县| 绍兴市| 扶沟县| 乃东县| 沙湾县| 台山市| 当雄县| 嘉黎县| 南宁市| 汶上县| 南昌市| 阿鲁科尔沁旗| 宝应县| 库伦旗| 湟中县| 色达县| 屏南县| 乌鲁木齐县| 岗巴县| 施秉县| 合江县| 托克逊县| 乳山市| 遂昌县| 乌兰察布市| 广州市| 桂林市| 隆林| 郯城县| 施甸县| 常熟市| 环江| 承德市|