ios - 检测解析类变化的更好方法?

标签 ios parse-platform traffic

目前我设置了一个计时器,每 2 秒对解析类进行一次查询,以查看是否有任何数据已更改。如果数据已更改,则调用 refreshData方法,因此我的 View 可以使用新的解析数据进行更新。
因此,当解析类中的数据更新时,它几乎会立即在应用程序中更新。

问题是这会导致很多不必要的网络流量,我需要避免。

我该怎么做才能用检测解析类中数据何时更改然后告诉应用程序调用 refreshData 的东西替换计时器方法?

最佳答案

afterSave 触发器

    //this will trigger everytime the className objects has changed
Parse.Cloud.afterSave("className", function(request) {
    //Do some stuff here //like calling http request or sending push 'data has changed' to installed mobile device
        console.log("Object has been added/updated"+request.object.id);

});

https://parse.com/docs/js/guide#cloud-code-aftersave-triggers

您需要先部署一个云代码,然后它会处理您的问题 :-)

在某些情况下,您可能希望在保存对象后执行一些操作,例如推送。您可以通过使用 afterSave 方法注册处理程序来做到这一点。例如,假设您想要跟踪博客文章的评论数量。您可以通过编写如下函数来做到这一点:
Parse.Cloud.afterSave("Comment", function(request) {
  query = new Parse.Query("Post");
  query.get(request.object.get("post").id, {
    success: function(post) {
      post.increment("comments");
      post.save();
    },
    error: function(error) {
      console.error("Got an error " + error.code + " : " + error.message);
    }
  });
});

无论处理程序如何终止,客户端都会在处理程序终止后收到对保存请求的成功响应。例如,即使处理程序抛出异常,客户端也会收到成功的响应。运行处理程序时发生的任何错误都可以在 Cloud Code 日志中找到。

如果您想将 afterSave 用于 Parse JavaScript SDK 中的预定义类(例如 Parse.User),则不应为第一个参数传递字符串。相反,您应该传递类本身。

关于ios - 检测解析类变化的更好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31257526/

相关文章:

ios - 解析 Swift - 自定义登录警报 View 错误

networking - 编码数据如何通过网络发送?

windows - 您会为 Windows 推荐什么 HTTP 流量监视器?

ios - PHAsset 获取将集合的 50% 返回为 nil

ios - 是否可以更改 UITextView 和 UITextField 中单个单词的颜色

ios - 如何在 Swift 中设置 PFObject 的 ACL?

java - 用 Jpcap 过滤

ios - UIScrollView 以启动为中心

ios - 从 NSOperationQueue 获取底层的 dispatch_queue_t

javascript - 登录时将自定义字段添加到 session 对象