IOS SDWebImage實現原理詳解
在之前我寫過SDWebImage的使用方法,主要是用與獲取網路圖片,沒有看過的朋友可以看看。
這篇文章將主要介紹SDWebImage的實現原理,主要針對於獲取網路圖片的原理,如果沒有第三方我們該怎麼去做,當然我知識用文字去介紹,我想花大把的時間去深入理解我們用不到的東西,是很不值得的,不過興趣的朋友可以去其他部落格上查詢相應資訊,畢竟學無止境。好了下面開始進入正題。
1)當我門需要獲取網路圖片的時候,我們首先需要的便是URl沒有URl什麼都沒有,獲得URL後我們SDWebImage實現的並不是直接去請求網路,而是檢查圖片快取中有沒有和URl相關的圖片,如果有則直接返回image,如果沒有則進行下一步。
2)當圖片快取中沒有圖片時,SDWebImage依舊不會直從網路上獲取,而是檢查沙盒中是否存在圖片,如果存在,則把沙盒中對應的圖片存進image快取中,然後按著第一步的判斷進行。
3)如果沙盒中也不存在,則顯示佔點陣圖,然後根據圖片的下載佇列快取判斷是否正在下載,如果下載則等待,避免二次下載。如果不存則建立下載佇列,下載完畢後將下載操作從佇列中清除,並且將image存入圖片快取中。
相關文章
- SDWebImage 的詳解Web
- 詳解Spring Retry實現原理Spring
- Java HashMap 的實現原理詳解JavaHashMap
- iOS 中的 GCD 實現詳解iOSGC
- 熱修復(一)原理與實現詳解
- 詳解Redisson分散式限流的實現原理Redis分散式
- SDWebImage原理小結Web
- (iOS)KVO 的實現原理iOS
- iOS SDWebImage 學習iOSWeb
- 詳解 Node.Js 中實現埠重用原理Node.js
- 詳解布隆過濾器原理與實現過濾器
- Redis Sentinel實現的機制與原理詳解Redis
- Linux : select()詳解 和 實現原理【轉】Linux
- 線段樹詳解 (原理,實現與應用)
- 深入瞭解View實現原理以及自定義View詳解View
- VirtualView iOS 模板載入功能實現詳解ViewiOS
- 解析 iOS 動畫原理與實現iOS動畫
- SDWebImage內部實現過程Web
- iOS VIPER架構實踐(二):VIPER詳解與實現iOS架構
- Spring原始碼剖析7:AOP實現原理詳解Spring原始碼
- JDK動態代理實現原理詳解(原始碼分析)JDK原始碼
- Nginx實現高速併發處理的原理詳解Nginx
- 詳解布隆過濾器的原理和實現過濾器
- 多圖詳解萬星 Restful 框架原理與實現REST框架
- Q-Q圖原理詳解及Python實現Python
- 探索iOS中Block的實現原理iOSBloC
- 圖解SDWebImage圖解Web
- 詳解鎖原理,synchronized、volatile+cas底層實現synchronized
- 深入詳解Java反射機制與底層實現原理?Java反射
- Golang make和new的區別及實現原理詳解Golang
- 令牌桶演算法原理及實現(圖文詳解)演算法
- Java網路程式設計和NIO詳解6:Linux epoll實現原理詳解Java程式設計Linux
- Spring框架系列(12) - Spring AOP實現原理詳解之JDK代理實現Spring框架JDK
- 老馬的春天:SDWebImage原始碼詳細解讀系列Web原始碼
- iOS底層原理總結 - 關聯物件實現原理iOS物件
- iOS中Block實現原理的全面分析iOSBloC
- iOS 揭露Block的內部實現原理iOSBloC
- iOS 訊息推送原理及實現DemoiOS