【发布时间】:2014-11-14 22:28:14
【问题描述】:
Iron 路由器提供了一种机制,使用“subscription”或“waitOn”等到订阅准备好。但是在订阅准备好之前,该页面不会被呈现。
就我而言,我有一些大型收藏可能需要一些时间来订阅。在显示任何内容之前等待可能不是一个好主意(尤其是主页)。因此,我尝试将 subscribe 函数调用放在 onBeforeAction 挂钩中,并且效果很好。订阅最初不返回任何数据,然后当数据到达时,它会再次响应式运行。这样,页面首先会显示一些内容,然后页面的某些部分稍后会被真实内容填充。
我没有看到这种方法以前被讨论过。所以我想知道这是否是一种以重新计算为代价来减少感知响应时间的好方法。这种方法有什么缺点吗?
我能想到的一件事是,如果我在 Template.name.rendered 中放置一些取决于数据的代码,它可能无法正常运行,因为渲染的函数只执行一次。它实际上给我带来了一些问题,我还有一个问题要问:Meteor, where to put d3 code?
除了我发现的问题之外,还有其他问题吗?
【问题讨论】:
-
也许您应该订阅一个较小的出版物,例如仅 _id 的出版物,然后使用模板助手和服务器方法获取更多数据。这两种方法我都用。
标签: meteor iron-router