发布onStop回调如何在Meteor中发挥作用?

时间:2015-08-01 16:22:05

标签: meteor iron-router meteor-publications

关注the Meteor documentationonStop()函数执行:

  

注册一个回调函数,以便在订阅停止时运行。

现在,我尝试使用我的出版物中的onStop()函数跟踪用户离开页面的情况。

我希望它直接工作,因为在模板路由控制器中调用了订阅,并且在页面离开后我的已发布集合不可用。但我在这里是因为即使该出版物在客户端不再有效,onStop()也不会被触发。我不确定它是如何工作的,所以这里有一些问题:

  • 如果用户离开附加的路线,是否会触发发布onStop()
  • 如果没有,是否有内置的Meteor机制来阻止未使用的pub / subs?如果是,它是如何工作的?这是暂停吗?
  • 是否有必要使用Cursor.observe()Cursor.observeChanges()来使用/触发onStop()回调?
  • 当我关闭浏览器或标签页或从当前用户帐户退出时,为什么没有触发onStop()回调?

1 个答案:

答案 0 :(得分:1)

我发现它没有触发onStop(),因为我必须在 onStop()后移动我的发布查询(因为查询位于{{1}后面1}})。

但是,由于我的问题可能会引起一些人的兴趣,所以答案如下:

  

如果用户离开附加到的路由,是否会触发发布onStop()?

是。无论用户是否访问网站的其他路线,关闭浏览器标签或电池电量耗尽,都能保持原状。

  

是否有必要使用Cursor.observe()或a   Cursor.observeChanges()使用/触发onStop()回调?

没有

  

为什么关闭浏览器时没有触发onStop()回调或   选项卡,或从我当前的用户帐户注销?

事实是在所有这些情况下都会触发。以下是当用户没有填写相关表格并离开页面而没有提交时,我用return来处理上传文件的基本出版物:

onStop()