美文网首页
SDImage加载同一链接的图片,不会刷新问题

SDImage加载同一链接的图片,不会刷新问题

作者: 隔壁班小明 | 来源:发表于2020-07-16 14:46 被阅读0次

问题:用户换头像App端不能更新,

原因:修改头像后图片的URL没有变化,而SDimage自身是靠图片URL来进行缓存的。当某个URL之前进行过缓存,且缓存可用时是不会再从新下载图片。

解决思路:想要解决这个问题,只能是请求特定图片时,使其跳过这个缓存机制每次都重新请求图片。

解决方案:SDImage是提供了方式,只是之前对这方面了解不多。

1将设置图片请求模式改为SDWebImageRefreshCached。这样就会不走SDImage自己的缓存,使用NSURL进行缓存,而且使用的policy为NSURLRequestUseProtocolCachePolicy。

2.做完第一步你会发现还是不好使,那是因为当前请求虽然使用了NSURLRequestUseProtocolCachePolicy方式,但是请求头中没有设置cache-control的值,只用设置这个值请求才会正确发送。

3.确保图片服务器是支持cache-control,这个确认过咱们服务器支持

完成这三步就可以完成上面的需求了。

具体实现:

调用sd的时候先把options设置为SDWebImageRefreshCached

在通过context,设置一个自定义的imageloader,同时给这个自定义的imageloader的请求头设置cache-control,具体模式用must-revalidate就行

疑点:不设置cache-control会导致请求不发生,这个具体代码没找到,但是实际情况是这样的,cache-control设置什么值都可以,这个应该和服务器实现有关系

相关文章

  • SDImage加载同一链接的图片,不会刷新问题

    问题:用户换头像App端不能更新, 原因:修改头像后图片的URL没有变化,而SDimage自身是靠图片URL来进行...

  • iOS SD加载gif大图导致内存崩溃的问题

    SDImage加载超大尺寸的gif图片,可以在xcode里看到内存爆增几百兆,这个问题网上没找到很好的解决方案。所...

  • 部分Gallery问题总结

    1.图片的刷新问题 刷新太慢:控制图片的大小、质量 2.图片的加载问题 Gallery是监听媒体数据库的变化,及时...

  • 图片懒加载

    延迟加载、懒加载技术 什么是懒加载技术:原理:先将img标签中的src链接设为同一张图片(空白图片),将其真正的图...

  • 图片有缓存不加载新图片

    SDWebImage同一链接下返回固定名称的图片处理(有缓存,当后台图片改变,不加载新图片) 或者

  • SDWebImage加载不同图片但是图片的URL是同一个,图片刷

    同遇到这个问题:参考: iOS开发:SDWebImage加载不同图片但是图片的URL是同一个,图片加载失败 重点是...

  • Glide禁用缓存

    问题描述 用Glide反复加载同一个路径的图片,发现图片变化后,但是Glide重新加载后,图片却没有变化. 解决方...

  • 懒加载

    图片懒加载 实现原理 原理:先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再img...

  • Roam Research图片链接一键替换保存工具

    缘由 由于Roam的调整,无法加载http链接图片,只能加载https链接图片,而本人RoamResearch中的...

  • 懒加载和瀑布流布局

    简述图片懒加载的实现原理 原理:先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再i...

网友评论

      本文标题:SDImage加载同一链接的图片,不会刷新问题

      本文链接:https://www.haomeiwen.com/subject/gaotphtx.html