2

我为流星创建了一个 DDP 客户端并实现了一个有序集合。基本上我实现了DDP 规范中的“added”和“ addedBefore”方法,但我对解释它们的正确方式有疑问。最初,我认为服务器将(仅)在集合中使用“add”或“ addedBefore”,具体取决于它是否被订购。但是有有序和无序的集合听起来是无稽之谈。所以我的问题来了:“添加”消息是否应该简单地解释为带有(before == null)的“addBefore”的别名,即添加到集合的最后?

同样在cursor.observe(callbacks)我发现以下回调函数added(document) addedAt(document, atIndex, before)是什么意思这里?我会在这两个函数中收到通知,但出于性能考虑,我最好不要对它们中的每一个都进行回调?

4

1 回答 1

2

至少从我对 DDP 协议的理解来看,流星还没有使用“有序集合”。

查询需要使用使用 minimongo 的客户端集合运行,以在本地观察更改,然后触发观察者触发器。您必须实现自己的观察方法,对传入的无序集合数据进行排序以触发 added/addedAt/addedBefore 类型的侦听器。他们开火的方式取决于你。

即使你实现了这些方法,服务器也永远不会发布这些,至少现在是这样。

这在当前的 DDP 规范中有所提及

注意:有序集合 DDP 消息当前不被 Meteor 使用。Meteor 将来可能会使用它们。

于 2013-12-20T11:38:57.570 回答