gpt4 book ai didi

javascript - 当数据更改时,Angular ng-if 指令会持续消耗更多内存

转载 作者:行者123 更新时间:2023-12-03 12:17:28 25 4
gpt4 key购买 nike

我一直在使用的 Angular 应用程序遇到问题。它显示数据行并在每列中使用 ng-if 指令来控制前缀和其他描述性文本或图像。

它工作得很好,只是内存使用量持续增长并且相当快,具体取决于我显示的数据量及其变化的速度。

我写了一篇文章来演示这个问题。我正在使用timeline memory view在 Chrome 开发工具中查看内存使用情况。如果去掉 ng-if 指令,每次 GC 后内存都会恢复正常。

http://plnkr.co/edit/Wcl9eJWy1AXqcNr8rpf1

HTML:

<body ng-app="MyApp">
<div ng-controller="RepoCtrl">
<div class="row">
<div class="col-md-12">
<table class="table table-condensed table-striped table-bordered table-responsive">
<tr>
<th>Repo</th>
<th>Owner</th>
<th>Git URL</th>
<th>Description</th>
</tr>
<tr ng-repeat="repo in repos">
<td>
<p ng-if="repo.name">{{ repo.name }}</p>
<td>
<p ng-if="repo.owner.login">{{ repo.owner.login }}</p>
</td>
<td>
<p ng-if="repo.git_url">{{ repo.git_url }}</p>
</td>
<td>
<p ng-if="repo.description">{{ repo.description }}</p>
</td>
</tr>
</table>
</div>
</div>
</div>

JavaScript:

<script type="application/javascript">
var app = angular.module("MyApp", ['ngResource']);

app.factory('RepoFactory', ['$resource', function ($resource) {
console.log('updated data');
return $resource(':user.json', {}, {
query: { method: 'GET', params: {}, isArray: true }
});
}]);

app.controller("RepoCtrl", ['$scope', '$http', '$interval', 'RepoFactory', function ($scope, $http, $interval, RepoFactory) {
function poll() {
if (typeof $scope.last === 'undefined') {
$scope.last = 'vye';
console.log('no previous query, using vye')
} else if ($scope.last == 'vye') {
$scope.last = 'angular';
console.log('got repos for vye last time, using angular')
} else if ($scope.last == 'angular') {
$scope.last = 'vye';
console.log('got repos for angular last time, using vye')
}
RepoFactory.query({user: $scope.last}, function(data){
$scope.repos = data;
});
}

var promise = $interval(poll, 5000);

$scope.$on('$destroy', function () {
if (angular.isDefined(promise)) {
$interval.cancel(promise);
promise = undefined;
}
});
}]);

</script>

这是由于我的疏忽而导致的错误或预期行为吗?

最佳答案

这是 AngularJS 的一个错误,已在最新版本 (1.3.0-beta.14) 中修复。

https://github.com/angular/angular.js/issues/8105

关于javascript - 当数据更改时,Angular ng-if 指令会持续消耗更多内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24615277/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com