我刚开始接触AngularJS,但我发现我的应用程序会在几分钟后遇到性能问题。
编辑:似乎只在IE11中发生
我有一个页面每1分钟导入一个JSON数组,如下所示:
$http.get('http://localhost/statuscheck.php?rnd' + new Date().getTime()).
success(function (data) {
$scope.statuschecks = data;
$scope.onlinecount = parseInt(0);
$scope.offlinecount = parseInt(0);
$scope.totalchecks = parseInt(0);
$scope.disabledcount = parseInt(0);
$scope.checkcomplete = false;
angular.forEach($scope.statuschecks, function (obj) {
$http.get('http://localhost/monitoring_test.php?websiteID=' + obj.websiteID + '&rnd' + new Date().getTime()).
success(function (data) {
if (data.status == 'Online') {
$scope.onlinecount = parseInt($scope.onlinecount) + 1;
} else if (data.status == 'Offline') {
$scope.offlinecount = parseInt($scope.offlinecount) + 1;
sitesdownarr.push(obj.websiteID);
}
$scope.totalchecks = parseInt($scope.totalchecks) + 1;
if ($scope.totalchecks == $scope.statuschecks.length) {
$scope.checkcomplete = true;
}
});
});
});
然后我使用页面上的$ scope.tasks对象来显示一些信息。由于此数据会定期更改,因此我使用$ timeout重新运行http.get以再次导入数据。
我打算让浏览器窗口全天打开,随着数据的变化观察页面的变化。但是,几分钟后,浏览器窗口将因长时间运行的脚本而停止运行。看起来,只需刷新一些数据,事情就会陷入困境。
我是以错误的方式解决这个问题吗?