订阅Meteor中的数据范围

时间:2017-04-11 14:23:12

标签: meteor meteor-blaze

我有一个Meteor应用程序,它显示一个日历(使用fullcalendar.io),并订阅给定日期范围内的预订。该应用程序使用FlowRouter并从URL中获取日期,然后使用它来订阅预订(URL日期到URL日期+ 14天)。这一切都很好,我可以跳过日历中的日子,加载每天的事件而不刷新,因为它们来自minimongo。我想要做的是在用户切换日期时在后台刷新此订阅。这可以使用流量路由器,例如:

FlowRouter.go('/diary/2017-04-11')

或在Session / Reactive变量中设置订阅日期。

这会将事件从2017-04-11加载到2017-04-25。问题是,当重新创建整个订阅时,加载时会有轻微的延迟。我想要实现的是一个移动的窗口' - 例如,如果我订阅了来自2017-04-10的事件并将发布更改为2017-04-11,那么只会加载1天,而不是所有数据都被删除和替换。这将确保我能够在没有任何加载时间的情况下跳过日历的日期。如果用户选择了日期>未来14天手动然后他们会看到加载时间,这是完全可以接受的。

1 个答案:

答案 0 :(得分:1)

听起来您的订阅与每次路线更改加载的模板相关联。然后,当您切换路由时,模板会重新加载,订阅也会重新加载。

缓存管理器有几个选项,可以让您在模板之间保持子活动。

e.g。 https://github.com/kadirahq/subs-manager

请注意,虽然这将允许您的客户端保持子活动,如我所描述的,它可能会在"添加剂"功能。所以它本身不会解决您的移动窗口问题,但它会在您导航时从发布者那里获取新项目。

第二个注意事项:使用此套餐,您不仅限于一名经理。我发现如果你保留一个经理/子,它最有效。一旦我开始向经理加载多个潜艇,它开始表现得很奇怪。