流星出版并订阅了大型收藏



所以让我们在电子商务应用程序中以这种情况来搜索"手腕手表"。

建议我发布和订阅整个产品集合吗?因为那张桌子我的身材很大。我有可能在不订阅它的情况下从收藏中获取吗?

另外,在流星1.3中,哪个是定义收藏的最佳场所?从我阅读的内容来看,它必须在/imports/api中,但是有些启发可能会有所帮助。

谢谢,

当您想将数据获取给流星客户端时,您有三个选择 - 选择自己的冒险。

选项1:发布整个集合

pros :易于实现,一旦数据到达,可以在客户端上快速使用/过滤器,可以在所有客户端的服务器上重复使用

cons :不能很好地缩放/无法超越几千个文档,可能要传输到客户端

很多

使用时使用:您的尺寸很小,客户需要所有的收藏品来过滤/搜索/选择

选项2:使用方法

您可以拥有流星方法将过滤的文档传递给客户端,而不是发布它们。IE。用户搜索"手表",该方法仅提供这些文档。有关更多详细信息,请参见指南的这一部分。如果您愿意,您可以将文档塞入本地集合中,但不需要。

pros :性能,可伸缩性,数据隔离(您不必担心文档的某些子集是由另一订阅添加的)

cons :设置和管理比订阅

更多的工作

使用时使用:您有一个无界的集合,并且需要以最佳性能的方式

选项3:使用反应性订阅

这与(2)非常相似,只是在更改搜索参数后,您将在autorun中重新订阅。有关更多详细信息,请参见本节。

PROS :比(2)

更易于实现

cons :比(2)慢一点的计算较贵,但可能的例外是可以在服务器上重复使用出版物(在搜索的情况下不太可能)

使用时使用:您有一个无界的集合,您需要一个努力最少/代码

的子集

在不了解您的特定用例的情况下,我会选择(2)。

至于在哪里定义您的收藏,请参见本节和Todos应用以获取示例。建议是使用您提到的imports/api。有关原因的解释,请参阅此问题。如果您需要更多细节,我建议打开一个单独的问题。

一般来说,我们不会一次将所有获取的数据发布到页面上。就用户体验而言,对于客户而言,它太长了。一个常见的建议是分页和分类。

关于流星,服务器上的集合与客户端的集合不同。简而言之,客户端上的集合是服务器集合的一个子集。该子集中的数据取决于流星的出版物订阅机制。数据在服务器上发布,您可以在客户端上订阅。这样,您可以得出子集。您还可以根据客户端在客户端上使用的子集以及如何使用子集来定义过滤,排序,计数,以形成派生子集。该文档包含一个相当不错的指南和有关流星集合的详细信息。

定义收藏的地方在流星中确实很灵活。它不必是/imports/api。它可以是服务器和客户端都可以访问的任何位置,因为在一般情况下,服务器需要查看数据并定义了操纵集合的方法,并且客户端需要查看它,以便在上面渲染数据网页。但是,正如所述,它是灵活的,并且取决于您如何实施和构建应用程序。它可以由服务器和客户端都可以访问的位置,但不需要。在某些情况下,收集仅在服务器上定义,并且客户端从隐式和间接协议中获取数据。流星方法是其中之一,而Rentful API是另一个命名的API。这是情况下的情况,您会尽力而为。那就是乐趣的来源。订阅是常见且不方便的,但不是唯一的。

流星将特殊规则定义为分别在服务器和客户端上的文件夹访问,流星1.3施加了一个新规则以进行调制。我喜欢阅读流星文档并发现它们非常有用,例如这样,有助于发展有关上述规则的扎实知识。

最新更新