3.3.3 隊(duì)列式異步請(qǐng)求

URL 加載系統(tǒng)執(zhí)行的隊(duì)列式異步請(qǐng)求位于隊(duì)列中, 可能位于后臺(tái)線程上. 在 iOS 5.0 中增加

只有在知道返回的數(shù)據(jù)不會(huì)超出應(yīng)用的內(nèi)存時(shí)才使用隊(duì)列式異步請(qǐng)求. 記住, 整個(gè)響應(yīng)體都會(huì)位于代碼的內(nèi)存中. 如果響應(yīng)很大, 那么可能導(dǎo)致應(yīng)用出現(xiàn)內(nèi)存溢出問題. 此外, 當(dāng)代碼將響應(yīng)解析為所需的格式時(shí)可能需要復(fù)制返回的數(shù)據(jù), 這會(huì)導(dǎo)致內(nèi)存增加一倍

為所有操作使用單一的 NSOperationQueue, 根據(jù)服務(wù)器的能為以及預(yù)期的網(wǎng)絡(luò)狀況控制當(dāng)前操作的最大數(shù)據(jù)

在處理返回的數(shù)據(jù)前驗(yàn)證錯(cuò)誤與調(diào)用返回的 HTTP 響應(yīng)狀態(tài)碼

如果源 URL 需要驗(yàn)證, 那么不要使用隊(duì)列異步請(qǐng)求, 因?yàn)樵摴δ懿⒉恢С謱?duì)認(rèn)證請(qǐng)求做出響應(yīng). 如果服務(wù)需要這種認(rèn)證, 那么可以將 BASIC 認(rèn)證信息放在提供給請(qǐng)求的 URL 中

如果需要向用戶提供進(jìn)度條, 那么不要使用隊(duì)列式異步請(qǐng)求, 因?yàn)檎?qǐng)求是原子的, 無法提供中間的進(jìn)度指示信息

如果需要通過流解析器來漸進(jìn)解析響應(yīng)數(shù)據(jù), 那么不要使用隊(duì)列式異步請(qǐng)求.

如果請(qǐng)求在完成前需要取消, 那么不要使用隊(duì)列式異步請(qǐng)求


隊(duì)列式異步請(qǐng)求
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容