我为meteor制作了一个DDP客户端并实现了有序集合。 基本上我实现了 DDP spec 中的“added”和“addedBefore”方法。但我对解释它们的正确方式存有疑问。最初,我认为服务器将在集合中(专门)使用“added”或“addedBefore”,具体取决于它是否已订购。但有序和无序集合听起来很无稽之谈。所以我的问题是:“added”消息是否应该简单地解释为“addedBefore”的别名 (before == null) 即添加到集合的最后?
也在cursor.observe(callbacks)中我发现以下回调函数 add(document) or addedAt(document, atIndex, before) 是什么意思 or 在这里?我是否会在这两个函数中收到通知,但出于性能考虑,我最好不要对每个函数都进行回调?
最佳答案
根据我对 DDP 协议(protocol)的理解,至少目前,meteor 还没有使用“有序集合”。
需要使用客户端集合来运行查询,使用 minimongo 来观察本地变化,然后触发观察者触发器。您必须实现自己的观察方法,对传入的无序集合数据进行排序,以触发added/addedAt/addedBefore 类型监听器。他们开火的方式取决于你。
即使您实现了这些方法,服务器也永远不会发布这些方法,至少目前是这样。
当前的 DDP 规范中提到了这一点
NOTE: The ordered collection DDP messages are not currently used by Meteor. They will likely be used by Meteor in the future.
关于Meteor 和有序集合(DDP 客户端和观察者),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20699628/