【问题标题】:Is there on-disk cache available on iPhone?iPhone 上是否有可用的磁盘缓存?
【发布时间】:2012-08-23 18:21:15
【问题描述】:

我找到了一个项目来改进 iPhone 上的缓存策略。因为他们确信: "On iPhone OS, Apple did remove on-disk cache support for unknown reason"

但是,我不这么认为,请参阅详细信息: https://github.com/rs/SDURLCache/issues/39

我发现 UIWebView 应用程序的文件夹“Library/Catches/com.company.appname/”上有两个 db 文件:

ApplicationCache.db、Cache.db

并尝试那些 sqls

“select * from CacheResourceData”,打开ApplicationCache.db后

"select * from cfurl_cache_receiver_data" on Cache.db

两者都是磁盘上的缓存文件内容

所以现在我很困惑,谁能告诉我真相和证据?

【问题讨论】:

  • 如果您访问该数据库,您的申请可能会被拒绝
  • NSCache 总是保存在内存中。 NSURLCache 有不同的存储策略。
  • @phix23,我尝试使用 [NSURLCache setDiskCapacity:1024*1024*50] 设置大容量;那么会不会造成一些问题,或者影响缓存性能?

标签: iphone ios caching uiwebview nsurlcache


【解决方案1】:

从 iOS 5.0 开始,NSURLCache 使用磁盘缓存:http://petersteinberger.com/blog/2012/nsurlcache-uses-a-disk-cache-as-of-ios5/

【讨论】:

    【解决方案2】:

    ApplicationCache.db用于缓存HTML5缓存,Cache.db与NSURLCache配合使用。

    [[NSURLCache sharedURLCache] removeAllCachedResponses]; 
    

    Cache.db 设置为空。 (使用 iOS 模拟器时在 Finder 中浏览查看)

    如果从目录中删除 ApplicationCache.db,HTML5 缓存会丢失。

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      相关资源
      最近更新 更多