2017-04-11 4 views
0

Ich habe eine Meteor-Anwendung, die einen Kalender (mit fullcalendar.io) anzeigt und Buchungen innerhalb eines bestimmten Datumsbereichs abonniert. Die App verwendet FlowRouter und ruft das Datum von der URL ab und verwendet dies, um die Buchungen zu abonnieren (URL-Datum bis URL-Datum + 14 Tage). Das alles funktioniert gut und ich kann die Tage im Kalender überspringen und Ereignisse für jeden Tag ohne Aktualisierung laden, da sie aus Minimongo kommen. Ich möchte dieses Abonnement im Hintergrund aktualisieren, wenn der Benutzer das Datum wechselt. Dies ist mit dem Flow-Router möglich, z. B .:Datenbereich in Meteor abonnieren

oder indem das Subskriptionsdatum in einer Session/Reactive-Variablen festgelegt wird.

Dies wird die Ereignisse vom 2017-04-11 bis 2017-04-25 laden. Das Problem besteht darin, dass beim Laden des gesamten Abonnements eine leichte Verzögerung auftritt. Was ich versuche zu erreichen, ist ein "Moving-Window" - wenn ich zum Beispiel Veranstaltungen vom 2017-04-10 abonniere und die Publikation auf 2017-04-11 umstelle, dann wird nur der 1 zusätzliche Tag geladen als alle Daten entfernt und ersetzt werden. Dies würde sicherstellen, dass ich die Tage des Kalenders ohne Ladezeiten überspringen kann. Wenn der Benutzer ein Datum> 14 Tage in der Zukunft manuell auswählt, dann sehen sie die Ladezeit, dies ist vollkommen akzeptabel.

Antwort

1

Es klingt, als wären Ihre Abonnements an die Vorlage gebunden, die mit jeder Routenänderung geladen wird. Wenn Sie dann die Routen wechseln, wird die Vorlage erneut geladen und das Abonnement zusammen mit der Vorlage.

Es gibt eine Reihe von Optionen für Cache-Manager, die es ermöglichen würden, ein Unterelement über mehrere Vorlagen hinweg aktiv zu halten.

z.B. https://github.com/kadirahq/subs-manager

Beachten Sie, dass, während dies Ihren Client ermöglicht, Subs aktiv zu halten, wie ich beschrieben habe, wird es wahrscheinlich in einer "additiven" Funktion arbeiten. Das Problem mit dem bewegten Fenster wird also nicht von alleine gelöst, aber beim Navigieren werden neue Elemente vom Publisher übernommen.

zweite Anmerkung: Mit diesem Paket sind Sie nicht auf einen einzelnen Manager beschränkt. Ich habe festgestellt, dass es am besten funktioniert, wenn Sie einen Manager/Sub behalten. Als ich anfing, mehrere Subs auf einen Manager zu laden, begann es sich merkwürdig zu verhalten.

+0

Danke, werde die Subskription ausschalten und sehen, wie das funktioniert. – Macros

+0

Entschuldigung für die Verzögerung beim Akzeptieren - dieser Ansatz hat perfekt funktioniert. Ich habe Ihren Rat über den einen Manager pro Sub genommen und tut genau das, was ich brauche – Macros

Verwandte Themen