[KSS-checkins] r42499 - kukit/kukit.js/trunk/kukit

reebalazs at codespeak.net reebalazs at codespeak.net
Mon Apr 30 22:42:23 CEST 2007


Author: reebalazs
Date: Mon Apr 30 22:42:22 2007
New Revision: 42499

Modified:
   kukit/kukit.js/trunk/kukit/commandprocessor.js
   kukit/kukit.js/trunk/kukit/kukit.js
Log:
Merge in from performance_improvement branch -r42413:42414: Make the binding of the nodes together in one batch

Modified: kukit/kukit.js/trunk/kukit/commandprocessor.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/commandprocessor.js	(original)
+++ kukit/kukit.js/trunk/kukit/commandprocessor.js	Mon Apr 30 22:42:22 2007
@@ -101,6 +101,7 @@
 };
 
 kukit.cp.CommandProcessor.prototype.executeCommands = function(oper) {
+    kukit.engine.beginSetupEventsCollection();
     // node, eventrule, binderinstance are given on oper, in case
     // the command was called up from an event
     if (typeof(oper) == 'undefined' || oper == null) {
@@ -120,5 +121,6 @@
             }
         }
     }
+    kukit.engine.finishSetupEventsCollection();
 };
 

Modified: kukit/kukit.js/trunk/kukit/kukit.js
==============================================================================
--- kukit/kukit.js/trunk/kukit/kukit.js	(original)
+++ kukit/kukit.js/trunk/kukit/kukit.js	Mon Apr 30 22:42:22 2007
@@ -43,6 +43,10 @@
     // instantiate a load scheduler
     this.loadScheduler = new kukit.rd.LoadActions();
     this.initializedOnDOMLoad = false;
+    // setup events queuing, collect them at the end of commands
+    this.setupEventsQueue = [];
+    this.setupEventsInProgress = false;
+
 };
 
 kukit.Engine.prototype.calculateBase = function() {
@@ -111,6 +115,27 @@
 };
 
 kukit.Engine.prototype.setupEvents = function(in_nodes) {
+    if (this.setupEventsInProgress) {
+        // remember them
+        this.setupEventsQueue = this.setupEventsQueue.concat(in_nodes);
+    } else {
+        // do it
+        this.doSetupEvents(in_nodes);
+    }
+};
+
+kukit.Engine.prototype.beginSetupEventsCollection = function() {
+    this.setupEventsInProgress = true;
+};
+
+kukit.Engine.prototype.finishSetupEventsCollection = function() {
+    this.setupEventsInProgress = false;
+    var setupEventsQueue = this.setupEventsQueue;
+    this.setupEventsQueue = [];
+    this.doSetupEvents(setupEventsQueue);
+};
+
+kukit.Engine.prototype.doSetupEvents = function(in_nodes) {
     var self = this;
     var deferred_setup_events = function() {
         self._setupEvents(in_nodes);


More information about the Kukit-checkins mailing list