IOS SDWebImage实现原理详解

在以前我写过SDWebImage的使用方法,主要是用与获取网络图片,没有看过的朋友能够看看。缓存

这篇文章将主要介绍SDWebImage的实现原理,主要针对于获取网络图片的原理,若是没有第三方咱们该怎么去作,固然我知识用文字去介绍,我想花大把的时间去深刻理解咱们用不到的东西,是很不值得的,不过兴趣的朋友能够去其余博客上查找相应信息,毕竟学无止境。好了下面开始进入正题。网络

1)当我门须要获取网络图片的时候,咱们首先须要的即是URl没有URl什么都没有,得到URL后咱们SDWebImage实现的并非直接去请求网路,而是检查图片缓存中有没有和URl相关的图片,若是有则直接返回image,若是没有则进行下一步。blog

2)当图片缓存中没有图片时,SDWebImage依旧不会直从网络上获取,而是检查沙盒中是否存在图片,若是存在,则把沙盒中对应的图片存进image缓存中,而后按着第一步的判断进行。队列

3)若是沙盒中也不存在,则显示占位图,而后根据图片的下载队列缓存判断是否正在下载,若是下载则等待,避免二次下载。若是不存则建立下载队列,下载完毕后将下载操做从队列中清除,而且将image存入图片缓存中。图片

4)刷新UI(固然根据实际状况操做)将image存入沙盒缓存。博客

相关文章
相关标签/搜索