内存泄漏 – 对轮询数据使用ngRepeat时Angular.js内存泄漏
发布时间:2020-12-17 17:17:41 所属栏目:安全 来源:网络整理
导读:我的angular.js应用程序中有一个似乎是内存泄漏的东西.基本上,该页面包含一个信息表,该表每五秒钟从 AJAX调用的 JSON编码结果更新.我在这里创建了一个简化的jsfiddle版本: http://jsfiddle.net/alalonde/TtGXW/6/ 控制器: function HostController($scope,
我的angular.js应用程序中有一个似乎是内存泄漏的东西.基本上,该页面包含一个信息表,该表每五秒钟从
AJAX调用的
JSON编码结果更新.我在这里创建了一个简化的jsfiddle版本:
http://jsfiddle.net/alalonde/TtGXW/6/
控制器: function HostController($scope,$timeout,Data) { $scope.encoders = Data.load(); $scope.refreshInterval = 5; $scope.reload = function () { $scope.encoders = Data.load(); }; $timeout(function doReload() { $scope.reload(); $timeout(doReload,$scope.refreshInterval * 1000); },5000); } 模板的片段: <table class="table table-striped table-bordered" ng-controller="HostController"> <tr> <th>Status</th> <th>... </tr> <tr ng-repeat="enc in encoders"> <td> <div>{{ enc.name }}</div> <div ng-show="enc.version"> v{{ enc.version.major }}.{{ enc.version.minor }}-{{ enc.version.rev }} <span ng-show="enc.version.user">- {{ enc.version.user }}</span> </div> </td> </tr> </table> 每分钟左右在Chrome中拍摄堆快照时,内存使用量每次都会略有增加.我已经将Igor Minar的修复程序应用于我的本地angular.js(https://github.com/angular/angular.js/commit/bd524fc4e5fc0feffe85632a7a6560da6bd9b762),这对我有很大的帮助,但是内存的使用仍然无情地爬上去. 任何有关使用带有angular.js的Chrome内存分析器的提示都将不胜感激. 解决方法
当我轮询数据并使用ng-repeat循环并渲染行时,我遇到了与内存消耗相同的问题.
当我使用“item in items”时,我的内存使用量不断增加,但当我使用“$item中的项目跟踪”时,内存使用情况稳定,GC正常清理. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |