RN -- reactNative IOS 图片缓存详解

今天在 做 app的 清除缓存功能, 大概想了下, 数据库 文件 缓存 都是 string , 没多大,就没必要 清空了, 需要 清除的 其实就是 RN 的 网络图片缓存; 接下来就得 知道 RN  IOS 的图片缓存策略了, 网上搜了下, 又问了几个大神, 也看了下 源码,从 RCTImageLoader 类的 loadImageOrDataWithURLRequest 可看到, 

_URLCache= [[NSURLCachealloc]initWithMemoryCapacity:5*1024*1024// 5MB

diskCapacity:200*1024*1024// 200MB

diskPath:@"React/RCTImageDownloader"];


RN IOS 的 网络图片 内存缓存最多 5M, 硬盘 缓存最多 200M, 用  的 系统的 NSURLCache 缓存策略, NSURLCache 会自动在本地 /Library/Caches/com.*.* 目录下生成缓存文件。(image 就在 fsCacheData 目录下),比如 我的路径就是 

/Users/Ebates/Library/Developer/CoreSimulator/Devices/EB3BA498-9A99-4620-A22F-FAEF1D19962B/data/Containers/Data/Application/776221EB-F8CA-42B2-A2EC-75E1A3F685E6/Library/Caches/com.ChildhoodFood.mobileApp /fsCachedData  


当使用 NSURL 相关的框架,使用到缓存的时候,系统会在 Caches目录下创建一个 跟 bundle identifer 同名的一个文件夹,以及里面的 Cache.db、Cache.db-shm、Cache.db-wal

三个文件和文件夹 fsCacheData/

·fsCacheData/ 文件夹会在有需要缓存数据到文件的数据才会有,如缓存图片

可以使用 [[NSURLCache sharedURLCache] removeAllCachedResponses] 清理这里所有的缓存数据



解决这个问题的过程中 翻到了 这几篇文章,很有帮助,分享给大家

RN的http图片缓存方案 http://awhisper.github.io/2016/07/17/Talk-about-ReactNative-Image-Component/

RN app 清除缓存的第三方库  https://github.com/reactnativecn/react-native-http-cache

AFNetworking 3.0 image缓存  http://www.jianshu.com/p/25240b959c96

NSURLCache详解和使用    http://www.cnblogs.com/cbw1987/p/5910624.html   

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概览 缓存组件应该说是每个客户端程序必备的核心组件,试想对于每个界面的访问都必须重新请求势必降低用户体验。但是如何...
    默默_David阅读 1,962评论 1 9
  • SDWebImage和AFNetworking的缓存机制 - 奔跑的人 - 博客频道 - CSDN....
    fengguohui阅读 4,519评论 0 6
  • 浏览器缓存(Browser Caching)是浏览器端保存数据用于快速读取或避免重复资源请求的优化机制,有效的缓存...
    fuyou2324阅读 5,204评论 0 8
  • 此刻比何时都更理解人人有自己独特的path,做自己最应做的,正突破最大瓶颈,此刻经历最大成长。每天都有很多情绪处理...
    jenjenzhong阅读 180评论 0 0
  • 当我们在使用微信等工具,点击扫一扫,就能打开二维码扫描视图。在我们点击屏幕的时候,iphone OS获取到了用户进...
    lbfly_boy阅读 673评论 0 0