I had a look at the source code. It processes the setImageWithURL
method like this:
- Ask the memory cache if the image is there, if yes return the image and don't go any further
- Ask the disk cache if the image is there, if yes return the image and don't go any further
- Try to download the image, return image on success else keep the placeholder image
There is no request sent to ask the remote server if there is a new version while there is something old on disk, like using ETags of the HTTP protocol.
Digging a bit deeper the cache time is set to a static value in SDImageCache.m
static NSInteger cacheMaxCacheAge = 60*60*24*7; // 1 week
it cannot be changed with a setter.
So as long as the image in the cache is valid the SDWebImage
lib won't download anything new. After a week it'll download your changed image.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…