SDWebImage 原理(二级缓存解决重复加载、异步下载解决UI卡顿)

第一步、通过key(url)取消当前的下载任务

第二步、设置占位图片

第三步、通过key(url)从内存缓存中获取图片,如果有,回调设置图片,如果没有,执行第四步

第四步、通过key(url 的 MD5值) 从磁盘缓存获取图片,如果有,把图片储存到内存缓存中,回调设置图片,如果没有,执行第五步

第五步、下载图片(异步),下载完成后,把图片储存到 内存缓存 和 磁盘缓存中,回调设置图片

注释: 写入到磁盘缓存:storeImageDataToDisk

          取消下载任务: - (void)sd_cancelImageLoadOperationWithKey:(NSString*)key

          从内存缓存中获取图片: - (UIImage*)imageFromMemoryCacheForKey:(NSString*)key;

         从磁盘缓存中获取图片: - (UIImage*)imageFromDiskCacheForKey:(NSString*)key;


参考:https://upload-images.jianshu.io/upload_images/968977-e3b10e08102a8d18.PNG?imageMogr2/auto-orient/

你可能感兴趣的:(SDWebImage 原理(二级缓存解决重复加载、异步下载解决UI卡顿))