在之前我寫過SDWebImage的使用方法榜揖,主要是用與獲取網(wǎng)絡(luò)圖片勾哩,沒有看過的朋友可以看看抗蠢。
這篇文章將主要介紹SDWebImage的實現(xiàn)原理,主要針對于獲取網(wǎng)絡(luò)圖片的原理思劳,如果沒有第三方我們該怎么去做迅矛,當然我知識用文字去介紹,我想花大把的時間去深入理解我們用不到的東西潜叛,是很不值得的秽褒,不過興趣的朋友可以去其他博客上查找相應信息,畢竟學無止境威兜。好了下面開始進入正題销斟。
1)當我門需要獲取網(wǎng)絡(luò)圖片的時候,我們首先需要的便是URl沒有URl什么都沒有椒舵,獲得URL后我們SDWebImage實現(xiàn)的并不是直接去請求網(wǎng)路蚂踊,而是檢查圖片緩存中有沒有和URl相關(guān)的圖片,如果有則直接返回image笔宿,如果沒有則進行下一步犁钟。
2)當圖片緩存中沒有圖片時,SDWebImage依舊不會直從網(wǎng)絡(luò)上獲取泼橘,而是檢查沙盒中是否存在圖片涝动,如果存在,則把沙盒中對應的圖片存進image緩存中侥加,然后按著第一步的判斷進行捧存。
3)如果沙盒中也不存在,則顯示占位圖担败,然后根據(jù)圖片的下載隊列緩存判斷是否正在下載昔穴,如果下載則等待,避免二次下載提前。如果不存則創(chuàng)建下載隊列吗货,下載完畢后將下載操作從隊列中清除,并且將image存入圖片緩存中狈网。
4)刷新UI(當然根據(jù)實際情況操作)將image存入沙盒緩存宙搬。
image