angularjs SPA - 如何刷新内存?

时间:2017-06-07 10:26:34

标签: javascript angularjs memory

我在我的网页中使用angularjs单页应用

以下是spa构造函数的代码

app.config(config);
config.$inject = ['$stateProvider','$urlRouterProvider'];
function config($stateProvider,$urlRouterProvider){
    $stateProvider.state('dashboard',{
        url:'/{userID}/{testID}',
        templateUrl:'templates/dashboard.html',
        controller:'dashboardCtrl'      
    });
}

模板dashboard.html显示Google图表和图表的数量。 在控制器dashboardCtrl中,我使用$http指令向服务器发出GET / POST请求,并使用响应数据绘制谷歌图表。

以下是服务代码($http请求)

app.service('getGraphData',getGraphData);
getGraphData.$inject = ['$http'];
function getGraphData($http){
    var obj = this;
    obj.getLatestData = function(testID){
        return $http({
            method:'GET',
            url:'/rest/getGraphDataForTestID',
            params:{testID:testID}
        }
        ).then(function(response){
            // success response
            return(response.data);
        });
    }
    return obj;
}

控制器代码 -

app.controller('dashboardCtrl',dashboardCtrl);
dashboardCtrl.$inject = ['$scope','$rootScope','getGraphData','$stateParams'];
function dashboardCtrl($scope,$rootScope,getGraphData,$stateParams){
    var testID = $stateParams.testID;
    var userID = $stateParams.userID;
    var graphData = null;
    getGraphData.getLatestData(testID).then(function(response){
        $scope.testname = response.data.testname;
        $scope.tag = response.data.tag;
        ..
        ..
        $scope.results = response.data;
        graphData = response.data;
        drawBarChart(graphData);
        drawPieChart(graphData);
    });
}

我的索引页面中有以下链接数

<a  ui-sref = "dashboard({userID:1,testID:197})"><b>dashboard-userid:1,graphs:197</b></a>
<a  ui-sref = "dashboard({userID:1,testID:198})"><b>dashboard-userid:1,graphs:198</b></a>

此设置工作正常一段时间,但过了一段时间后,我收到浏览器错误消息“浏览器内存不足以显示此网页

也许是因为angularjs正在保存以前的$scope$rootScope变量,并且还会在重新加载模板时创建新变量... 或者只是JavaScript变量没有被删除... (但我没有使用全局变量 - 所有都在控制器函数内声明,它应该具有与该函数相同的寿命)

如何清除/清除这些$scope/$rootScope变量和空闲内存... 我如何分析我的特定页面的内存使用情况.. ?? 请帮忙......

1 个答案:

答案 0 :(得分:0)

有一个Chrome扩展程序,可让您分析角度应用程序的性能 - Batarang

它还显示$scope$rootScope个变量。