我想知道meteorJs如何管理大数据集的同步。
假设我们绑定了 find 查询的结果,它返回一个 1000 到 10.000 条记录之间的变量数,每个记录有 10 个字段,find 查询一直根据用户的输入而变化,并且每次都会给出新的数据集!它有点极端,但它会帮助我理解。
那么流星怎么同步这个呢?它会一次发送它们吗(等待数据加载=> UI 反应性的延迟=> 对用户体验不太好)?或者将它们分成块并发送它们,用户会看到信息逐渐出现?
如果我们可以控制流量,你能指导一下吗?
谢谢。
我想知道meteorJs如何管理大数据集的同步。
假设我们绑定了 find 查询的结果,它返回一个 1000 到 10.000 条记录之间的变量数,每个记录有 10 个字段,find 查询一直根据用户的输入而变化,并且每次都会给出新的数据集!它有点极端,但它会帮助我理解。
那么流星怎么同步这个呢?它会一次发送它们吗(等待数据加载=> UI 反应性的延迟=> 对用户体验不太好)?或者将它们分成块并发送它们,用户会看到信息逐渐出现?
如果我们可以控制流量,你能指导一下吗?
谢谢。
每个文档都在其自己的 DDP 消息中发送。DDP 是 Meteor 的数据协议,目前作为传输层位于 sockjs 之上。当用户第一次打开 Meteor 网页时,服务器会向他们发送他们订阅的所有数据。
稍后,随着数据的更新,Meteor 服务器会准确计算客户端知道哪些信息发生了变化,并且只发送不同部分的更新。
为了控制应用程序中的延迟,从项目中删除自动发布非常重要,并仔细决定将发布给客户端的游标,以便每个客户端只需要接收 Web 浏览器可能需要在下一分钟左右。
随着这一切的发生,客户端在收到每组更改后立即重新渲染。如果你想控制它,你可以设置一个控制渲染的会话变量,你可以从每个订阅的 onComplete 回调中设置它。