php - iOS和PHP:检查服务器是否已更新/数据库是否已更改

标签 php ios objective-c nsfilemanager

背景

我有一个iOS应用程序,该应用程序从服务器检索数据并将其使用NSFileManager写入文件,因此用户不必每次想要访问页面时都从服务器再次检索数据。他们检索的数据可能会不时更改,因此我希望在更新时更新应用程序文件中的数据。

我正在为后端Web服务使用php页面。

问题

检查数据库中的数据是否已更改以便我知道应该更新应用程序中的数据的技术是什么?我能想到的唯一方法是创建一个php页面,以检查数据是否与我存储的数据不同,但是这种做法违反了将信息保存到应用程序内文件的目的。我想尽量减少用户与服务器进行通信时的情况,因为在用户没有服务的情况下,我仍然希望能够在应用程序中看到有效的数据。

如果您不完全了解我要实现的目标,请提出问题。谢谢!

最佳答案

例如,如果要列出最近添加的餐厅,则可以:

  • 将最新餐厅的ID存储在IOS上,并在要检查更新时将其发送到服务器。
  • 如果数据库中的ID不相同,则必须更新客户端。
  • 如果相同,则可以发送状态为304(未修改)的响应,以便最大程度地减少正在交换的数据量。

  • 如果您想缓存计算数据,例如用户评价最高的10家餐厅,则可以:
  • 存储10个餐厅ID的哈希,并在要检查更新时将其发送到服务器。
  • 服务器重做请求并计算前10位的当前哈希值。
  • 如果哈希值不同,请更新客户端
  • 如果哈希值相同,则发送状态为304的响应

  • 注意:如果服务器端的计算成本很高,则可能需要考虑一种更聪明的方法来检测数据更改。

    关于php - iOS和PHP:检查服务器是否已更新/数据库是否已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33019982/

    相关文章:

    ios - 从 UTC 字符串获取日期

    php - mysql 选择空值查询

    ios - Swift - 如何从 Firebase 检索多个值并将它们显示在 UITABLEVIEW 上

    ios - 在 iOS 上,如果我们真的想执行 initWithCenterAndSize,那么设置 subview 的最佳方式是什么?

    ios - Swift - 当收到无声通知时决定是否显示警报

    iphone - 带小数分隔符的数字键盘

    ios - 如何获取存储在sqlite数据库中的浮点值?

    php - 如何使用当前登录的用户预填 voyager BREAD 表格?

    sed - 用于插入命令的复杂 sed 命令

    php - Magento:将每个订单的产品最大数量限制为 1。数量 2 = 2 个订单