2016-11-26 25 views
0

我正在研究需要分页(无限滚动)的流星应用程序。如果用户滚动到底部,则我通过 Collection.find({"offset": {$gte: currentOffset}}, {limit: limit})拖动下一个数据块。这种方法的问题是之前的文档不再可用。我可以删除偏移量来保留旧偏移量,但是在超过1000个条目后它会减慢应用程序的速度。我使用发布/订阅komposer容器。有没有办法使用限制和偏移量来保持以前的集合在新的查询之上?提前致谢。流星孟戈分页

+0

你有没有看过[this](https://www.discovermeteor.com/blog/template-level-subscriptions/)? – blueren

+0

嘿。感谢您的建议。我看了那篇文章,正如你所看到的那样,拉取数据没有偏移,这意味着拉取大量数据后会减慢。 – user2646559

回答

0

您可以使用kadirahq/subs-manager而不是默认的Meteor.subscribe来订阅数据。该软件包将缓存您的订阅及其所有数据以改善应用性能。

但请记住,即使在使用此包时,如果您向客户端发送大量数据(比如说超过一千个文档),您的应用程序将最终缓慢且缓慢,因为它必须将所有文档保留在内存中以供观察他们的变化。

因此,您应该限制发布到客户端的文档的最大数量(IMO,300-400应该没问题)。如果您需要更多,请考虑使用其他方式进行分页。

+0

嘿。谢谢回复。我尝试过,但我没有感觉到明显的性能提升。该应用程序本身有一个相当不错的性能,没有这个滚动> 1000条目。 – user2646559