Update of /var/cvs/html/mmbase/validation In directory james.mmbase.org:/tmp/cvs-serv14022
Modified Files: validation.js.jsp Log Message: made caches static, made it possible to prefech node managers by comma separated list See also: http://cvs.mmbase.org/viewcvs/html/mmbase/validation Index: validation.js.jsp =================================================================== RCS file: /var/cvs/html/mmbase/validation/validation.js.jsp,v retrieving revision 1.54 retrieving revision 1.55 diff -u -b -r1.54 -r1.55 --- validation.js.jsp 12 Aug 2008 19:46:14 -0000 1.54 +++ validation.js.jsp 23 Oct 2008 14:42:06 -0000 1.55 @@ -9,7 +9,7 @@ * then call validator.setup(el). * * @author Michiel Meeuwissen - * @version $Id: validation.js.jsp,v 1.54 2008/08/12 19:46:14 michiel Exp $ + * @version $Id: validation.js.jsp,v 1.55 2008/10/23 14:42:06 michiel Exp $ */ @@ -18,9 +18,6 @@ this.logEnabled = false; this.traceEnabled = false; - - - this.dataTypeCache = new Object(); this.invalidElements = 0; //this.changedElements = 0; this.elements = []; @@ -39,6 +36,10 @@ } + +MMBaseValidator.dataTypeCache = new Object(); +MMBaseValidator.prefetchedNodemanagers = new Object(); + MMBaseValidator.validators = []; @@ -464,7 +465,7 @@ if (el.mm_key == null) { el.mm_key = key.string(); } - var dataType = this.dataTypeCache[el.mm_key]; + var dataType = MMBaseValidator.dataTypeCache[el.mm_key]; if (dataType == null) { var url = '<mm:url page="/mmbase/validation/datatype.jspx" />'; @@ -474,7 +475,7 @@ complete: function(res, status){ if (status == "success") { dataType = res.responseXML; - self.dataTypeCache[el.mm_key] = dataType; + MMBaseValidator.dataTypeCache[el.mm_key] = dataType; } } }); @@ -536,11 +537,17 @@ * be done for every field. * */ -MMBaseValidator.prototype.prefetchNodeManager = function(nodemanager) { +MMBaseValidator.prototype.prefetchNodeManager = function(n) { + var nodemanagers = n.split(","); + for (var i in nodemanagers) { + var nodemanager = nodemanagers[i]; + if (! MMBaseValidator.prefetchedNodemanagers[nodemanager]) { var url = '<mm:url page="/mmbase/validation/datatypes.jspx" />'; var params = {nodemanager: nodemanager }; var self = this; + MMBaseValidator.prefetchedNodemanagers[nodemanager] = true; + $.ajax({async: false, url: url, type: "GET", dataType: "xml", data: params, complete: function(res, status){ if (status == "success") { @@ -551,13 +558,15 @@ var key = new Key(); key.nodeManager = nodemanager; key.field = fields[i].getAttribute("name"); - self.dataTypeCache[key.string()] = fields[i]; + MMBaseValidator.dataTypeCache[key.string()] = fields[i]; } //console.log("" + res); } } }); + } + } } _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs