diff --git a/app/node_views/results.html b/app/node_views/results.html
index 646185f..5a8adb2 100644
--- a/app/node_views/results.html
+++ b/app/node_views/results.html
@@ -39,7 +39,7 @@
{{notations.domComplexity}}
-
DOM size
+
DOM complexity
{{notations.domManipulations}}
@@ -49,6 +49,10 @@
{{notations.duplicatedDomQueries}}
Duplicated DOM queries
+
+
{{notations.badPractices}}
+
Javascript bad practices
+
diff --git a/app/public/scripts/resultsCtrl.js b/app/public/scripts/resultsCtrl.js
index 731e4d4..dbb8ed5 100644
--- a/app/public/scripts/resultsCtrl.js
+++ b/app/public/scripts/resultsCtrl.js
@@ -57,40 +57,45 @@ app.controller('ResultsCtrl', function ($scope) {
$scope.notations = {
domComplexity: 'A',
domManipulations: 'A',
- duplicatedDomQueries: 'A'
+ duplicatedDomQueries: 'A',
+ badPractices: 'A'
};
- var domComplexityScore = $scope.phantomasResults.metrics.DOMelementsCount;
- if (domComplexityScore > 500) {
+ var domComplexityScore = $scope.phantomasResults.metrics.DOMelementsCount
+ + Math.sqrt($scope.phantomasResults.metrics.DOMelementMaxDepth)
+ + $scope.phantomasResults.metrics.iframesCount * 100;
+ if (domComplexityScore > 1000) {
$scope.notations.domComplexity = 'B';
}
- if (domComplexityScore > 1000) {
+ if (domComplexityScore > 1500) {
$scope.notations.domComplexity = 'C';
}
- if (domComplexityScore > 1500) {
+ if (domComplexityScore > 2500) {
$scope.notations.domComplexity = 'D';
}
- if (domComplexityScore > 2000) {
+ if (domComplexityScore > 3500) {
$scope.notations.domComplexity = 'E';
}
- if (domComplexityScore > 3000) {
+ if (domComplexityScore > 5000) {
$scope.notations.domComplexity = 'F';
}
- var domManipulationsScore = $scope.phantomasResults.metrics.DOMinserts + $scope.phantomasResults.metrics.DOMqueries * 0.5 + $scope.totalJSTime;
- if (domManipulationsScore > 50) {
+ var domManipulationsScore = $scope.phantomasResults.metrics.DOMinserts
+ + $scope.phantomasResults.metrics.DOMqueries * 0.5
+ + $scope.totalJSTime;
+ if (domManipulationsScore > 100) {
$scope.notations.domManipulations = 'B';
}
- if (domManipulationsScore > 100) {
+ if (domManipulationsScore > 200) {
$scope.notations.domManipulations = 'C';
}
- if (domManipulationsScore > 200) {
+ if (domManipulationsScore > 300) {
$scope.notations.domManipulations = 'D';
}
if (domManipulationsScore > 500) {
$scope.notations.domManipulations = 'E';
}
- if (domManipulationsScore > 1000) {
+ if (domManipulationsScore > 800) {
$scope.notations.domManipulations = 'F';
}
@@ -101,15 +106,36 @@ app.controller('ResultsCtrl', function ($scope) {
if (duplicatedDomQueries > 10) {
$scope.notations.duplicatedDomQueries = 'C';
}
- if (duplicatedDomQueries > 20) {
+ if (duplicatedDomQueries > 15) {
$scope.notations.duplicatedDomQueries = 'D';
}
- if (duplicatedDomQueries > 50) {
+ if (duplicatedDomQueries > 25) {
$scope.notations.duplicatedDomQueries = 'E';
}
- if (duplicatedDomQueries > 100) {
+ if (duplicatedDomQueries > 50) {
$scope.notations.duplicatedDomQueries = 'F';
}
+
+ var badPracticesScore = $scope.phantomasResults.metrics.documentWriteCalls * 3
+ + $scope.phantomasResults.metrics.evalCalls * 3
+ + $scope.phantomasResults.metrics.jsErrors * 10
+ + $scope.phantomasResults.metrics.consoleMessages;
+ console.log($scope.phantomasResults.metrics.consoleMessages);
+ if (badPracticesScore > 5) {
+ $scope.notations.badPractices = 'B';
+ }
+ if (badPracticesScore > 10) {
+ $scope.notations.badPractices = 'C';
+ }
+ if (badPracticesScore > 15) {
+ $scope.notations.badPractices = 'D';
+ }
+ if (badPracticesScore > 25) {
+ $scope.notations.badPractices = 'E';
+ }
+ if (badPracticesScore > 40) {
+ $scope.notations.badPractices = 'F';
+ }
}
function initExecutionView() {