3

通过调用服务器方法在服务器端执行任何涉及插入、更新、删除文档的数据库操作是否会对性能造成影响Meteor.call()

还是有更好的方法,或者是否也可以让客户端在他身边完成所有这些操作,然后将更改发送到服务器并将其广播给所有其他客户端?

我的场景涉及以下内容:我想要一个反应数据表,它自动反映某人(登录另一个帐户)或他自己何时添加新行、更新行或删除它。我已经建立了一个无限滚动,但问题是当我进入详细信息页面(单击一行)并返回时,我失去了原来的位置,我必须向下滚动鼠标滚轮才能加载其他文档。

4

2 回答 2

1

对于第一点,您可以选择两种可能性中的任何一种,但我更喜欢使用第二种:

  • 客户端可以插入/更新/删除
  • 服务器有一些安全检查

使用此系统,您可以使用流星的延迟补偿。所以这似乎是一个很好的做法。

对于第二点,您可以想象在单击详细信息时将您在列表中的位置存储在 Session 中。然后,当您返回列表时,检查会话值,您只需使用它来恢复状态。

于 2013-08-14T16:57:02.817 回答
0

你可以同时做这两个。这是 Meteor 的共享客户端/服务器代码真正有用的领域之一。基本上,用 做所有操作Meteor.call,并将调用方法存储在共享文件夹中。这样,您可以获得让服务器处理它的所有好处,并且您仍然可以使用延迟补偿。您始终可以使用isSimulation 方法,它可以让您在 Meteor 方法中运行客户端或服务器特定的代码。

于 2013-08-14T19:34:53.737 回答