代码之家  ›  专栏  ›  技术社区  ›  Sean Clark Hess

我可以强制从缓存加载nsurlconnection吗?

  •  3
  • Sean Clark Hess  · 技术社区  · 15 年前

    我曾经考虑过编写一个自定义的URL缓存,但看起来nsurlcache应该支持磁盘缓存。我想让我的iPhone应用程序使用缓存的响应,在资源过时之前(由我从服务器发回的消息头决定),根本不需要点击服务器。

    我必须要用nsurconnection说些花哨的话吗?如何让iPhone使用URL的缓存版本?

    更新 :这是我的代码的链接

    http://pastie.org/808549

    4 回复  |  直到 13 年前
        1
  •  5
  •   typeoneerror    15 年前

    我认为您可能需要向nsurlrequest添加“cachepolicy”:

    这个 nsurlrequestreturnchedataelseload 缓存策略将导致URL 加载系统以使用缓存数据 忽略其年龄或有效期, 如果它存在,并从 仅当存在 不是缓存版本。

    http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/URLLoadingSystem/Concepts/CachePolicies.html#//apple_ref/doc/uid/20001843

    那里有一些不同的政策。也许其中一个会有帮助。

        2
  •  1
  •   Sean Clark Hess    15 年前

    不幸的是,iPhone不能用nsurlcache进行磁盘缓存,这使得它不适合我概述的场景。

    我在上自己的课。

        3
  •  0
  •   xyzzycoder    15 年前

    看一下ASI课程。

    http://allseeing-i.com/ASIHTTPRequest/

    它们很漂亮。

        4
  •  0
  •   JTea    13 年前

    如果在请求中使用etags,那么使用@typeoneerror描述的策略进行缓存似乎可以正常工作。