Meteor.call 会影响乐观 UI 吗?
Posted
技术标签:
【中文标题】Meteor.call 会影响乐观 UI 吗?【英文标题】:Does Meteor.call affect optimistic UI? 【发布时间】:2015-11-28 01:54:18 【问题描述】:当我在客户端和服务器上执行 Meteor.call 而不是直接收集操作时。它是否删除了乐观的 UI 更改,也就是 minimongo 更改,并且只是直接更改服务器并在更新 UI 之前等待服务器上的更新?
【问题讨论】:
这还不清楚。Meteor.call
绝对可以执行任何类型的代码。我怀疑您在这次通话中进行了数据库更新,但我不能确定。请发布您的客户端和服务器代码的MCVE。
例如,如果我调用删除用户。在页面上有一个显示表格的表格。如果我通过客户端助手执行此操作,它将立即显示并在服务器上运行相同的操作。但如果我改为使用 Meteor.call,那还会发生吗?
【参考方案1】:
Read the last section of this Meteor doc about 'How latency compensation works'
总结
如果您的 Meteor.method 仅在服务器端定义,您确实会丢失乐观的数据更改。在这种情况下,当您的客户端调用该方法时,您实际上是在调用 REST 服务并等待服务器端响应,然后您的客户端才能处理响应。
当您进行客户端集合操作时,客户端模拟 minimongo 中的更改,然后告诉服务器更改集合,然后服务器使用服务器端更改(接受或拒绝)更新客户端。
注意:如果你将 Meteor.method 共享给客户端和服务器,你可以获得乐观的性质。我从来没有这样做过,但请阅读链接
【讨论】:
以上是关于Meteor.call 会影响乐观 UI 吗?的主要内容,如果未能解决你的问题,请参考以下文章