1.iOS怎么实现多个任务执行完后,再统一处理:
https://blog.csdn.net/hero_wqb/article/details/80271206
2.不让用SDWebImage,如何实现类似逻辑 (自己设计图片请求和缓存,简单讲了SDWebImage的思路):
在SD里面使用了大量的block作为回调。
SD将URL地址作为key,去查找内存是否存在这张图片,如果存在,直接加载,不进行后续操作。
如果不存在,去本地数据里面查找是否存在这张图片,如果存在,加载到内存,加载图片。否则去网络下载图片,下载完成后,写入本地加载到内存并显示图片。
这就是SD加载图片的基本原理,当然了它实际的流程还有很多细节。例如图片下载方式的选择,图片显示的方式(是直接显示还是经过处理,例如大图的加载),同步异步的选择,缓存的清理,代码结构,RunTime等。
这里提一下SD大量使用block回调,这样比代理回调要好,主要减少了代码之间的依赖关系。
3.每个TableViewCell都有一个UIImageView要加载图片,如果没有缓存,有五个Cell请求一个url,同时发请求肯定是不实际的,如何处理?
//www.greatytc.com/p/c611c952f1b2?utm_campaign
4.微信TableView滑动的时候,动图是不动的,为什么?
Runloop的Mode决定的.
5.有了解过WebSocket吗?
为了改善HTTP请求的这种网络延迟的情况,也出现了一些适应不同需求的其他的[web通信]方式,比如说:轮询,长轮询(long-polling),数据流,EventSouce等等,WebSocket便是其中一种。
允许服务器端与客户端进行全双工(full-duplex)的实时通信。这里有个例子特别好:HTTP协议像发电子邮件,发出后必须等待对方回信;WebSocket则是像打电话,服务器端和客户端可以同时向对方发送数据,它们之间存着一条持续打开的数据通道。