簡體   English   中英

使用 SDWebImage IOS 管理服務器上的圖像更改

[英]Manage image changes on server with SDWebImage IOS

我喜歡這個類似的問題,但它太舊了。

我正在使用 SDWebImage 庫從遠程服務器下載圖像。

遠程圖像可能會更改(但保持相同的名稱),因此我必須在使用緩存圖像之前檢查遠程圖像是否已更改。

我怎樣才能做到這一點?

提前致謝(抱歉英語不好)

我今晚只是在做這項研究,根據 SDWebImage 的當前實現,似乎沒有“內置”方法可以使用條件 GET(etag 或日期)類型的請求到服務器來檢查更新。

我現在探索的方法是創建一個唯一的 URL,以便隨着圖像的服務器版本更新,將哈希或版本附加到末尾。 就像是:

http://example.com/myimage.png?v=2

並在圖像更改時增加該版本號,但保持 myimage.png 名稱相同,因為它不會更改。 這應該會強制 SDWebImage 下載新圖像並為新版本的圖像構建新緩存。

否則,您必須調整cacheMaxCacheAge中的常量值cacheMaxCacheAge以比其默認值 1 周更頻繁地檢查。

我這樣做了:

[SDWebImage sd_setImageWithURL:[NSURL URLWithString:strURL] placeholderImage:[UIImage imageNamed:@"placeholder.png"] options:SDWebImageRefreshCached];

/** * 即使圖像被緩存,也要尊重 HTTP 響應緩存控制,並在需要時從遠程位置刷新圖像。 * 磁盤緩存將由 NSURLCache 而不是 SDWebImage 處理,導致性能略有下降。 * 此選項有助於處理在同一請求 URL 后面更改的圖像,例如 Facebook 圖形 API 個人資料圖片。 * 如果刷新緩存圖像,則使用緩存圖像和最終圖像再次調用完成塊。 * * 僅當您無法使用嵌入式緩存破壞參數使您的 URL 成為靜態時才使用此標志。 */

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM