缓存来自 iPhone 的 PHP Web 服务的结果
Posted
技术标签:
【中文标题】缓存来自 iPhone 的 PHP Web 服务的结果【英文标题】:Caching results from a PHP webservice for iPhone 【发布时间】:2010-06-17 09:08:51 【问题描述】:我正在构建一个从 php 服务器检索 JSON 数据集的应用程序。该应用程序有一个视图,显示来自 Web 服务器的几个不同的新添加或更新项目的“提要”。
应用开始时会加载 20 个最新的项目,然后用户可以再加载 20 个较旧的项目,然后再加载 20 个,以此类推。我希望这些数据在后续视图更改和退出/启动应用程序之间保持不变。
到目前为止,我有一个 PHP 网络服务通过接受last_updated
时间戳来处理 JSON 响应,该时间戳由 iphone 客户端通过网络服务查询发送。然后服务器返回它发现的比last_updated
时间更新的任何项目。
在 iPhone 端,我连接到 web 服务,将结果返回到 iphone 并在自定义 UITableViewCell
单元格中显示它们。但是,到目前为止,该应用程序每次都会从 Web 服务请求数据。
我有点困惑,什么是缓存这些数据的好方法。我是自己存储实际的单元格,还是为每种提要项目类型创建一个对象并存储它?或者是其他东西?我是否使用核心存储、sqlite 或其他一些自定义方法?
感谢您的任何见解。
【问题讨论】:
【参考方案1】:您永远不会在表格视图单元格中存储任何类型的数据。单元格旨在被重用以创建任意长表格的错觉。如果您继续创建和保留单元作为数据存储,您将很快耗尽所有内存。
听起来你确实想创建一个核心数据存储,尽管 plist 和 SQL 是次要的选择。 Core Data 的学习曲线相对陡峭,但一旦你学会了它,一切都会变得更容易。
【讨论】:
如果我使用 Core Data,我是否必须重新创建与我的 mysql 数据库相同的数据模型结构? 可能,但这取决于您要执行的操作以及数据的复杂程度。如果您只想保存单个 JSON 请求,请将它们单独保存到 plist 文件中。如果数据有很多关系,最好使用 Core Data。我真的没有足够的信息来提供详细的建议。 很高兴知道,谢谢。数据确实有很多关系。这会很艰难!以上是关于缓存来自 iPhone 的 PHP Web 服务的结果的主要内容,如果未能解决你的问题,请参考以下文章
来自服务器的 iPhone 实时通知,无需使用 Apple 推送通知
Memcache缓存服务器(Nginx+php+Memcache+MySQL)
如何使用来自iPhone应用程序的SOAP请求将图像+ xml上传到Web服务器