美文网首页React nativeiOS开发
RN -- reactNative IOS 图片缓存详解

RN -- reactNative IOS 图片缓存详解

作者: 蜗壳美如画 | 来源:发表于2016-11-17 11:50 被阅读1602次

    今天在 做 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   

    相关文章

      网友评论

        本文标题:RN -- reactNative IOS 图片缓存详解

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