用户经常打开我的流星应用程序的多个选项卡。有没有办法让这些选项卡共享相同的连接(服务器上的状态),这样就没有多个冗余连接。我正在考虑自己想出一个包来做这件事,我想知道是否有人对此有任何想法。它应该有助于提高性能。
问问题
867 次
2 回答
4
可以通过 localStorage 共享客户端数据(将其视为浏览器数据库)。也可以共享服务器端数据,通常通过数据库(如果是流星,则为 MongoDB)。网络连接(而不是集合)由浏览器自动跨选项卡共享。
如果您的意思是共享集合(而不是连接),则无需执行任何特殊操作即可在选项卡(客户端)之间共享它们。观察相同集合的客户将看到相同的数据。
然而,Meteor 提供的便利是有代价的。其中之一是每个客户端都有自己的部分集合副本,因此它可以使用/浪费大量内存。
这是实现细节,就像 JavaScript 如何使用/浪费更多内存和 cpu 而不是本地代码以换取便利一样,您对此无能为力,至少不容易。
更新:正如 Harry 所指出的,对于真正的 DDP 连接“共享”,可以检测并断开新选项卡,并使用 localStorage 从第一个选项卡同步数据,以便只有一个活动连接。然而恕我直言,这将是一项非常英勇的壮举。
于 2014-04-25T08:50:24.667 回答
3
您应该能够为此使用HTML5 本地存储。这个库就是这样做的:
于 2014-04-15T07:43:51.083 回答