[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