IOS下处理异步网络事件
2014-02-17 17:35
148 查看
涉及到IOS平台下网络编程。
对网络编程的技术或知识点理解记录在此
1)异步请求:网络异步请求不会阻塞主线程,而是在所开线程中进行网络处理,处理完成后通过回调或通知的方式进行反馈。在IOS应用开发中是很常用的,极大提高用户体验。
2)在此阐述一个缓冲池实现原理来说明处理异步网络数据:
目前有这样一个案例,从网络获取图像数据,然后在IOS应用中进行显示。
线性的做法:在主线程中,进行网络数据获取,获取到数据后就进行显示(此处省略显示方式等阐述,旨在说明网络原理)。在完成后你会发现由于网络的不稳定性,在图像显示的过程中会出现长时间的卡顿,即主线程阻塞。
合理的做法:应该是一边进行网络数据获取,一边进行图像显示。这里考虑到加一个缓冲池,在新的或所开线程中进行网络请求数据,并将其写入到所创建缓冲池中,而主线程从该缓冲池中获取数据并进行图像显示。这样就可以大大降低主线程阻塞。当然在网络条件差的时候同样还是会出现,我们可以通过其他的方法或途径进行进一步的优化等,此处不进行阐述。
以上是异步网络请求的一些理解。其实异步网络请求里面涉及HTTP请求,还有很多要说的。后续继续补充
对网络编程的技术或知识点理解记录在此
1)异步请求:网络异步请求不会阻塞主线程,而是在所开线程中进行网络处理,处理完成后通过回调或通知的方式进行反馈。在IOS应用开发中是很常用的,极大提高用户体验。
2)在此阐述一个缓冲池实现原理来说明处理异步网络数据:
目前有这样一个案例,从网络获取图像数据,然后在IOS应用中进行显示。
线性的做法:在主线程中,进行网络数据获取,获取到数据后就进行显示(此处省略显示方式等阐述,旨在说明网络原理)。在完成后你会发现由于网络的不稳定性,在图像显示的过程中会出现长时间的卡顿,即主线程阻塞。
合理的做法:应该是一边进行网络数据获取,一边进行图像显示。这里考虑到加一个缓冲池,在新的或所开线程中进行网络请求数据,并将其写入到所创建缓冲池中,而主线程从该缓冲池中获取数据并进行图像显示。这样就可以大大降低主线程阻塞。当然在网络条件差的时候同样还是会出现,我们可以通过其他的方法或途径进行进一步的优化等,此处不进行阐述。
以上是异步网络请求的一些理解。其实异步网络请求里面涉及HTTP请求,还有很多要说的。后续继续补充
相关文章推荐
- 如何处理iOS中照片的方向
- IOS-如何处理多个网络请求的并发的情况
- iOS ScrollView下拉留白处理
- iOS程序开发引用的第三方库之间出现duplicate symbol时的处理方法
- iOS开发-通知传值(NSNotifacationCenter)处理界面操作及其细节
- iOS:处理XML文件
- ios--图片处理(修改、保存)
- IOS-日期处理
- iOS中处理时间的类
- ios、android开发入门事件处理的几种方式
- iOS图像处理(3)绘制路径
- iOS线程处理 学习笔记(一)并发
- UITableView的部分自定义设置以及iOS11下间距问题的处理方式
- iOS 子视图超出父视图范围点击事件处理!
- iOS笔记之--消息处理之performSelector
- ios scrollView联动处理-左边悬停、上面悬停
- iOS 消息处理之performSelector
- iOS屏幕变换的处理(1)
- iOS开发系列--并行开发(处理多个网络请求并发的情况)
- 时区日期处理及定时 (NSDate,NSCalendar,NSTimer,NSTimeZone) -- IOS(实例)