我正在开发一个需要分页(无限滚动)的Meteor应用程序。如果用户滚动到底部,我会拉下下一个数据块
Collection.find({"offset": {$gte: currentOffset}}, {limit: limit})
。这种方法的问题在于之前的文档不再可用。我可以删除偏移量来保留旧的偏移量,但是在拉过1000个条目后它会减慢应用程序的速度。我使用发布/订阅与komposer容器。有没有办法使用限制和偏移量将先前的集合保持在新的卡盘之上?提前致谢。
答案 0 :(得分:0)
您可以使用kadirahq/subs-manager代替默认Meteor.subscribe
来订阅数据。此程序包将缓存您的订阅及其所有数据,以提高应用程序性能。
但请记住,即使使用此软件包,如果您向客户端发送大量数据,比如说超过一千个文档,您的应用程序最终会变得缓慢而缓慢,因为它必须将所有文档保留在内存中以便监视它们变化。
因此,您应该限制要发布到客户端的文档的最大数量(IMO,300-400应该没问题)。如果您需要更多,请考虑使用其他方式进行分页。