【发布时间】:2016-10-12 06:51:21
【问题描述】:
这是我的问题。
我有一个应用程序,用户可以在其中将笔记存储在记事本中。
当前,当用户单击记事本时,我订阅了一个出版物,该出版物返回该记事本的前 5 个笔记。
因此,每当用户导航到新记事本时,都会设置一个新订阅,并且该记事本的 5 个笔记最终会出现在 minimongo 中。所以 minimongo 一次只有 5 个笔记在笔记集合中
为了改善用户体验,我更改了发布,因此在整个应用程序初始加载时,我订阅了一个发布,该发布返回所有记事本和每个记事本的前 5 个笔记。因此,现在在 minimongo 中,我们始终拥有 (5 x (# of notepads)) 数量的笔记。
所以初始负载有点重,但我希望在那之后,在记事本之间导航会更快。
所以在加载时我订阅了myInfo,它会返回用户的记事本和每个记事本的 5 个笔记。
然后当你实际点击一个记事本时,我订阅了myNotepadInfo,它也返回了记事本的前5个笔记。由于初始订阅已经检索到此信息,因此 minimongo 中的任何文档都没有实际更改。但我仍然想订阅myNotepadInfo,因为我有一个加载更多注释机制,这取决于模板中的订阅。
所以我的应用程序完全可以处理这些更改,但我不确定幕后发生了什么,以及这种方法是否真的有助于提高性能。我没有注意到更改后记事本加载方式的具体差异。
所以基本上我有第二个订阅,它与初始订阅重叠。
在我看来,由于第二次订阅与最初的订阅重叠,它必须向客户端传输更少的文档,所以它应该更快?
【问题讨论】:
-
From meteor documentation: '但是,如果你的 run 函数的下一次迭代订阅相同的记录集(相同的名称和参数),Meteor 足够聪明,可以跳过浪费的取消订阅/重新订阅。' 我认为在启动时订阅所有内容并不是一个好习惯。大量记事本会大大增加您的加载时间。这就是订阅的原因。如果您想进一步实现动态加载/搜索,easy:search 是一个不错的选择。
标签: meteor meteor-publications