2017-06-07 17 views
0

I AngularJS einzelne Seite app in meiner Webseite verwendet,angularjs SPA - Wie speichere ich?

finden Sie Code für die Spa-Konstruktor

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

Vorlage dashboard.html zeigt Anzahl der Google-Grafiken und Diagramme. In Controller dashboardCtrl, mache ich GET/POST-Anfragen an den Server mit $http Direktive, und grafisch Google Graphen mit Antwortdaten.

finden Sie Code für Service ($http Anfrage)

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; 
} 

Controller-Code -

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); 
    }); 
} 

Ich habe Reihe von Links wie in meiner Index-Seite folgende

<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> 

Dieses Setup funktioniert für einige Zeit gut, aber nach einiger Zeit bekomme ich einen Browserfehler Meldung „Browser lief diese Webseite aus dem Speicher anzuzeigen“

Vielleicht, weil AngularJS vorherige $scope und $rootScope Variablen speichern und auch neue zu schaffen, wenn Vorlage neu geladen wird ... oder einfach JavaScript-Variablen werden nicht gelöscht zu werden ... (aber ich verwende keine globalen Variablen - alle in Controller-Funktionen deklariert werden, die gleiche Lebensdauer wie die Funktion haben sollte)

wie kann ich klar/bündig diese $scope/$rootScope Variablen und freien Speicher ... wie Kann ich die Speicherauslastung meiner bestimmten Seite analysieren? Bitte helfen Sie ...

Antwort

0

Es gibt eine Chrome-Erweiterung, mit der Sie Winkel Apps für Leistung analysieren können - Batarang.

Es zeigt $scope und $rootScope Variablen auch.

+0

danke, es ist nützlich –