[英]What happens to SDWebImage Cached Images in my app when the image file on the server changes?
[英]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.