【发布时间】:2015-08-12 14:53:14
【问题描述】:
这些数据以每秒 30 次左右的速度传入,并通过这些事件处理程序提供给我的应用程序。我为此使用 btford.socket-io,而 0MQ 负责将数据传输到我的 node.js 服务器。
我已经跟踪了来自节点服务器的数据,并意识到它是正确的,所以重复实际上是在 Angular 端发生的。
基本上发生的情况是,每次我离开视图并返回视图时,所有事件的触发次数都是以前的两倍。
在btford API Reference中,他给出了使用的建议
socket.forward('dataUpdate', $scope);
$scope.$on('socket:dataUpdate', function(ev, data) {
$scope.someVar1 = data;
$scope.someVar2 = data;
$scope.someVar3 = data;
$scope.someVar4 = data;
});
这有助于另一种情况。但是,正如我所说,在这种情况下,该事件每秒被调用 30 次并处理 4 次,因为有 4 个变量。所以每次我改回显示这些变量的路线时,不是做 4 次工作,而是做 8 次,然后是 12、16 次,然后继续。这样一来,我就会出现内存泄漏,最终浏览器崩溃。
有没有人对我如何使它变得更好有任何想法?
【问题讨论】:
标签: angularjs node.js events socket.io zeromq