我只是注意到,当我在Meteor中执行Route.go()时,它保留了前一页的所有模板处理程序/事件/呈现JS代码。
例如,在Route.go()之前的前一页,我有一个setInterval(.)每x秒跑一次。
在Route.go()之后,这个setInterval继续触发,但是由于所需的元素不再存在,它只是不断地生成错误。
这是故意的吗?我怎样才能重新开始?
注意:这也适用于单击链接,因为从技术上讲,这也是一条路由(如果链接是作为路由创建的)
发布于 2014-12-06 18:01:26
使用Router.go并不等同于单击超链接或发出服务器端重定向.。
通常情况下,Route.go会像一个非绑定的超链接(即物理上发出一个新的GET请求),或者发出服务器端301,但这不是铁路由器的工作方式。
它将在当前加载的窗口环境中处理路由,通常使用HTML5 pushState交换URL,但处理Meteor内部的路由。
这意味着,除非显式停止处理程序,否则任何现有的setIntervals或其他“全局”事件都将继续运行。
发布于 2014-12-06 11:45:51
如果您用Meteor.setInterval()设置了一个间隔,那么您必须自己用Meteor.clearInterval()清除它。
去看看医生
https://stackoverflow.com/questions/27330887
复制相似问题