在集合中更新大型文档会导致客户端冻结6-8秒

时间:2015-12-11 13:12:58

标签: meteor collections updates

我在一个集合中有一个相对较大的文档;该文档是一个具有~2000个元素的对象,每个元素本身就是一个小对象。当我在服务器上更新文档时,客户端会锁定6-8秒。

我已经输入了日志记录,告诉我服务器何时完成更新集合,然后有6-8秒冻结,接下来发生的事情是observeChanges在客户端运行,一切都重新开始运行。

  • 我在客户端发出超时,每隔100ms就会登录到控制台。它在延迟期间停止触发,所以我认为我的客户端javascript都没有运行。

  • 延迟似乎与文档的初始加载时间相匹配(我尝试过不同大小的文档)。

  • 我正在使用Iron Router。我已经记录了数据,waitOn和动作函数:它们在延迟之后才会触发。所以我认为路由器不是问题所在。

  • 更新集合的功能仅在服务器上运行,因此客户端仿真速度不慢。

  • 这不是渲染:如果我只触发更新客户端,页面会重新渲染。

  • 我仔细检查了一下,我认为我的客户端代码都没有请求该文档,它的唯一find()在启动时运行,并且它不是自动运行。

    < / LI>
  • 我已将登录记录到我的发布函数中:该集合未被重新发布。我没有运行自动发布。

有什么想法可能是我可以进一步调查的问题或想法?文件更新时,它是否像不可避免的同步时间一样简单?我需要所有的数据,所以虽然我可以重组它,但我无法摆脱任何数据。

0 个答案:

没有答案