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.lxweimin.com/p/25240b959c96

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 概覽 緩存組件應該說是每個客戶端程序必備的核心組件,試想對于每個界面的訪問都必須重新請求勢必降低用戶體驗。但是如何...
    默默_David閱讀 1,961評論 1 9
  • SDWebImage和AFNetworking的緩存機制 - 奔跑的人 - 博客頻道 - CSDN....
    fengguohui閱讀 4,518評論 0 6
  • 瀏覽器緩存(Browser Caching)是瀏覽器端保存數據用于快速讀取或避免重復資源請求的優化機制,有效的緩存...
    fuyou2324閱讀 5,199評論 0 8
  • 此刻比何時都更理解人人有自己獨特的path,做自己最應做的,正突破最大瓶頸,此刻經歷最大成長。每天都有很多情緒處理...
    jenjenzhong閱讀 180評論 0 0
  • 當我們在使用微信等工具,點擊掃一掃,就能打開二維碼掃描視圖。在我們點擊屏幕的時候,iphone OS獲取到了用戶進...
    lbfly_boy閱讀 673評論 0 0