SDWebImage实现原理详解
2016-05-04 23:43
841 查看
1)当需要获取网络图片的时候,我们首先需要的便是URL,如果没有URL什么都没有,获得URL后,SDWebImage实现的并不是直接去请求网路,而是检查图片缓存中有没有和URL相关的图片,如果有则直接返回image,如果没有则进行下一步。
2)当图片缓存中没有图片时,SDWebImage依旧不会直从网络上获取,而是检查沙盒中是否存在图片,如果存在,则把沙盒中对应的图片存进image缓存中,然后按着第一步的判断进行。
3)如果沙盒中也不存在,则显示占位图,然后根据图片的下载队列缓存判断是否正在下载,如果下载则等待,避免二次下载。如果不存则创建下载队列,下载完毕后将下载操作从队列中清除,并且将image存入图片缓存中。
4)刷新UI(当然根据实际情况操作)将image存入沙盒缓存。
2)当图片缓存中没有图片时,SDWebImage依旧不会直从网络上获取,而是检查沙盒中是否存在图片,如果存在,则把沙盒中对应的图片存进image缓存中,然后按着第一步的判断进行。
3)如果沙盒中也不存在,则显示占位图,然后根据图片的下载队列缓存判断是否正在下载,如果下载则等待,避免二次下载。如果不存则创建下载队列,下载完毕后将下载操作从队列中清除,并且将image存入图片缓存中。
4)刷新UI(当然根据实际情况操作)将image存入沙盒缓存。
相关文章推荐
- HDU-1114-Piggy-Bank
- visual studio 利用快捷键自动整理代码
- Spark Streaming揭秘 Day3-运行基石(JobScheduler)大揭秘
- java学习之路之邮件相关
- lightoj 1030 Discovering Gold
- 记大学一年级总结
- BZOJ 4554: [Tjoi2016&Heoi2016]游戏 二分图匹配
- div显示滚动条
- 冒泡排序
- JSP 6动作
- Oracle完全卸载详细步骤
- unbuntu下apache中的django部署
- Python文件读写基础
- 常用电脑硬件检测工具下载
- intellij idea 如何更改比编辑器文本字体和大小
- java 处理CSV(分号里面有逗号)
- 微信学习_06_access_token的获取
- 点双连通 练习
- LinearLayout内的权重属性 weight
- Mac OS下PHP开发环境的搭建——基于XAMPP和IntelliJ IDEA