Module: nagvis
Branch: master
Commit: 32076127514b35eeb289d9166fd684557414ac69
URL:    
http://nagvis.git.sourceforge.net/git/gitweb.cgi?p=nagvis/nagvis;a=commit;h=32076127514b35eeb289d9166fd684557414ac69

Author: Lars Michelsen <[email protected]>
Date:   Sun Oct 31 10:25:04 2010 +0100

Javascript tuning: Memory optimizations (last_conf are now only needed 
attributes)

---

 .../frontend/nagvis-js/js/NagVisStatefulObject.js  |   33 ++++++++++---------
 share/frontend/nagvis-js/js/frontend.js            |    4 +-
 2 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/share/frontend/nagvis-js/js/NagVisStatefulObject.js 
b/share/frontend/nagvis-js/js/NagVisStatefulObject.js
index d039111..9508683 100644
--- a/share/frontend/nagvis-js/js/NagVisStatefulObject.js
+++ b/share/frontend/nagvis-js/js/NagVisStatefulObject.js
@@ -27,7 +27,7 @@
 
 var NagVisStatefulObject = NagVisObject.extend({
        // Stores the information from last refresh (Needed for change 
detection)
-       last_conf: null,
+       last_state: null,
        // Array of member objects
        members: null,
        
@@ -93,12 +93,13 @@ var NagVisStatefulObject = NagVisObject.extend({
         * @author      Lars Michelsen <[email protected]>
         */
        saveLastState: function() {
-               this.last_conf = {};
-               
-               // FIXME: Do not copy the whole conf array
-               for (var i in this.conf) {
-                       this.last_conf[i] = this.conf[i];
-               }
+               this.last_state = {
+                 'summary_state': this.conf.summary_state,
+                       'summary_in_downtime': this.conf.summary_in_downtime,
+                       'summary_problem_has_been_acknowledged': 
this.conf.summary_problem_has_been_acknowledged,
+                       'output': this.conf.output,
+                       'perfdata': this.conf.perfdata,
+               };
        },
        
        /**
@@ -109,9 +110,9 @@ var NagVisStatefulObject = NagVisObject.extend({
         * @author      Lars Michelsen <[email protected]>
         */
        stateChanged: function() {
-               if(this.conf.summary_state != this.last_conf.summary_state || 
-                  this.conf.summary_problem_has_been_acknowledged != 
this.last_conf.summary_problem_has_been_acknowledged || 
-                  this.conf.summary_in_downtime != 
this.last_conf.summary_in_downtime) {
+               if(this.conf.summary_state != this.last_state.summary_state || 
+                  this.conf.summary_problem_has_been_acknowledged != 
this.last_state.summary_problem_has_been_acknowledged || 
+                  this.conf.summary_in_downtime != 
this.last_state.summary_in_downtime) {
                        return true;
                } else {
                        return false;
@@ -127,18 +128,18 @@ var NagVisStatefulObject = NagVisObject.extend({
         */
        stateChangedToWorse: function() {
                var lastSubState = 'normal';
-               if(this.last_conf.summary_problem_has_been_acknowledged && 
this.last_conf.summary_problem_has_been_acknowledged == 1) {
+               if(this.last_state.summary_problem_has_been_acknowledged && 
this.last_state.summary_problem_has_been_acknowledged == 1) {
                        lastSubState = 'ack';
-               } else if(this.last_conf.summary_in_downtime && 
this.last_conf.summary_in_downtime == 1) {
+               } else if(this.last_state.summary_in_downtime && 
this.last_state.summary_in_downtime == 1) {
                        lastSubState = 'downtime';
                }
 
                // If there is no "last state" return true here
-               if(!this.last_conf.summary_state) {
+               if(!this.last_state.summary_state) {
                        return true;
                }
                
-               var lastWeight = 
oStates[this.last_conf.summary_state][lastSubState];
+               var lastWeight = 
oStates[this.last_state.summary_state][lastSubState];
                
                var subState = 'normal';
                if(this.conf.summary_problem_has_been_acknowledged && 
this.conf.summary_problem_has_been_acknowledged == 1) {
@@ -164,8 +165,8 @@ var NagVisStatefulObject = NagVisObject.extend({
         * @author      Lars Michelsen <[email protected]>
         */
        outputOrPerfdataChanged: function() {
-               if(this.conf.output != this.last_conf.output || 
-                  this.conf.perfdata != this.last_conf.perfdata) {
+               if(this.conf.output != this.last_state.output || 
+                  this.conf.perfdata != this.last_state.perfdata) {
                        return true;
                } else {
                        return false;
diff --git a/share/frontend/nagvis-js/js/frontend.js 
b/share/frontend/nagvis-js/js/frontend.js
index 0c43039..7e0333e 100644
--- a/share/frontend/nagvis-js/js/frontend.js
+++ b/share/frontend/nagvis-js/js/frontend.js
@@ -706,9 +706,9 @@ function updateObjects(aMapObjectInformations, aObjs, 
sType) {
                                
                                // - Eventlog
                                if(aObjs[intIndex].conf.type == 'service') {
-                                       eventlog("state-change", "info", 
aObjs[intIndex].conf.type+" "+aObjs[intIndex].conf.name+" 
"+aObjs[intIndex].conf.service_description+": Old: 
"+aObjs[intIndex].last_conf.summary_state+"/"+aObjs[intIndex].last_conf.summary_problem_has_been_acknowledged+"/"+aObjs[intIndex].last_conf.summary_in_downtime+"
 New: 
"+aObjs[intIndex].conf.summary_state+"/"+aObjs[intIndex].conf.summary_problem_has_been_acknowledged+"/"+aObjs[intIndex].conf.summary_in_downtime);
+                                       eventlog("state-change", "info", 
aObjs[intIndex].conf.type+" "+aObjs[intIndex].conf.name+" 
"+aObjs[intIndex].conf.service_description+": Old: 
"+aObjs[intIndex].last_state.summary_state+"/"+aObjs[intIndex].last_state.summary_problem_has_been_acknowledged+"/"+aObjs[intIndex].last_state.summary_in_downtime+"
 New: 
"+aObjs[intIndex].conf.summary_state+"/"+aObjs[intIndex].conf.summary_problem_has_been_acknowledged+"/"+aObjs[intIndex].conf.summary_in_downtime);
                                } else {
-                                       eventlog("state-change", "info", 
aObjs[intIndex].conf.type+" "+aObjs[intIndex].conf.name+": Old: 
"+aObjs[intIndex].last_conf.summary_state+"/"+aObjs[intIndex].last_conf.summary_problem_has_been_acknowledged+"/"+aObjs[intIndex].last_conf.summary_in_downtime+"
 New: 
"+aObjs[intIndex].conf.summary_state+"/"+aObjs[intIndex].conf.summary_problem_has_been_acknowledged+"/"+aObjs[intIndex].conf.summary_in_downtime);
+                                       eventlog("state-change", "info", 
aObjs[intIndex].conf.type+" "+aObjs[intIndex].conf.name+": Old: 
"+aObjs[intIndex].last_state.summary_state+"/"+aObjs[intIndex].last_state.summary_problem_has_been_acknowledged+"/"+aObjs[intIndex].last_state.summary_in_downtime+"
 New: 
"+aObjs[intIndex].conf.summary_state+"/"+aObjs[intIndex].conf.summary_problem_has_been_acknowledged+"/"+aObjs[intIndex].conf.summary_in_downtime);
                                }
                                
                                // - Sound


------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Nagvis-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nagvis-checkins

Reply via email to