2017-06-07 11 views
0

私はangularjs SPA - メモリをフラッシュする方法は?

には、次の、私のWebページでangularjs単一ページアプリを使用していますが、Googleのグラフやチャートの数が表示されdashboard.htmlスパコンストラクタ

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

テンプレートのコードです。 コントローラーdashboardCtrlでは、$http指示文を使用してサーバーにGET/POST要求を行い、応答データを使用してグーグルグラフをプロットします。

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> 

このセットアップで、次のようなリンクの数を持っている -

次は、サービス($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; 
} 

コントローラコードのコードですしばらくの間うまくいきますが、しばらくするとブラウザのエラーが発生しますメッセージangularjsが前$scope$rootScope変数を保存し、テンプレートが再ロードされたときにも、新しいものを作成しているので... または単にJavaScriptの変数は削除取得されていませんたぶん

ブラウザがこのWebページを表示するためにメモリを使い果たしました」 ... (しかし、私はグローバル変数を使用していない - すべては、コントローラの関数内で宣言され、その関数と同じ生活をしているはずである)

をどのように私はクリア/これら$scope/$rootScope変数や空きメモリをフラッシュしない... 方法私は特定のページのメモリ使用量を分析できますか? 助けてください...

答えて

0

パフォーマンス用の角型アプリを分析できるクロム拡張機能があります - Batarang

これは、$scope$rootScopeの変数も示しています。

+0

ありがとうございます –

関連する問題