订阅同一发布的多个模板的模板级订阅是针对每个模板运行一次还是一次?

时间:2016-03-24 12:38:52

标签: meteor meteor-blaze

假设你有template1和template2,它们都在.onCreated()和this.autorun()中使用this.subscribe('samePublication',sameArg)进行订阅。

当我们有这样的事情时会发生什么:

<template name="template3">
    {{>template1}}
    {{>template2}}
</template>

对于每个模板,this.subscribe('samePublication',sameArg)会运行一次,并且两次点击我的服务器和数据库吗?

我应该将this.subscribe()放在template3上的.onCreated()中吗?

在阅读完这篇文章之后,我自己的理解是'不'和'不':http://docs.meteor.com/#/full/meteor_subscribe

希望有更多知识渊博的人发表评论。 提前致谢。

1 个答案:

答案 0 :(得分:1)

根据我的经验,订阅会在您每次路由到视图并渲染模板时加载并点击您的数据库。

虽然一般的最佳实践(可能是为了促进模块化)是使用模板级订阅,但我发现如果路由被大量使用并经常更改为并且涉及大量文档,那么它会使性能更具意义。在客户端启动时加载这些订阅并在视图之间共享。

您是否知道可以通过订阅发布传递参数并使用发布中的参数来过滤结果?使用它通常会在不影响全球订阅的情况下对性能产生重大影响。

PS:我正致力于并行订阅,直到加载&#39; fast&#39;之后才开始。登录页面,以便当用户切换到订阅量很大的页面时,并行加载已经完成,但不会影响“第一印象”。用户。

相关问题