Blame | Last modification | View Log | RSS feed
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><html><head><title>Dojo interactive benchmark tool</title><script type="text/javascript" src="../../dojo/dojo.js"></script><script type="text/javascript">// FIXME:// the url below points to dojo.inpdx.net/benchResults.php// need to setup DB on dtk.org and change URL here to store// results elsewhere ... work db structure in accompanying// .php file// basic stats are located at http://dojo.inpdx.net/benchmarks.htmldojo.require("dojo.fx");// FIXME: this seems an excessive fix for IE6 issue ...dojo.require("dijit.dijit");// dojo.require("dijit.form.Button");dojo.require("dijit.dijit-all");dojo.require("dojo.parser");// setup global variablesvar masterResults = { clientNavigator: navigator.userAgent, dataSet: [], errors: [] }var isRunning = false;var theCount, theClass, runner = null;var testCount = 0;dojo.addOnLoad(function(){theCount = dojo.byId('countNode');theClass = dojo.byId('classNode');runner = dojo.byId('runner');masterResults.dojoVersion = dojo.version.toString();});function _toggleRunMsg(){var newMsg = (isRunning) ? " Run Test " : " Running ..."dojo.fx.chain([dojo.fadeOut({node:runner,duration:200,onEnd: function(){runner.innerHTML = newMsg;isRunning=!isRunning;}}),dojo.fadeIn({ node:runner, duration: 200 })]).play();}function runTest(){if(isRunning){ return; }_toggleRunMsg();setTimeout("_runRealTest()",1000);}function _runRealTest(){var _error = false;var count = theCount.value;var aclass = theClass.value.toString();var theMethod = (dojo.byId('parse').checked) ? "parse" : "create";var tmpNode = document.createElement('div');switch(theMethod){case "parse" :var tmpString = [];for(var i=0; i<count; i++){tmpString.push('<div dojoType="', aclass, '"></div>');}tmpNode.innerHTML = tmpString.join("");var tmpTimer = new Date().getTime();dojo.parser.parse(tmpNode);var endTime = new Date().getTime() - tmpTimer;break;case "create" :var construction = dojo.getObject(aclass);var tmpTimer = new Date().getTime();for(var i=0; i<count; i++){var tmp = new construction({});tmpNode.appendChild(tmp.domNode);}var endTime = new Date().getTime() - tmpTimer;break;}var average = (endTime / count);var msg = "It took: "+endTime+"ms to "+theMethod+" "+count+" "+aclass+" widgets"+"<br>(average: "+average+" ms/widget)<br><br>";masterResults.dataSet.push({testNum: ++testCount,dijit: aclass,testCount: count,testAverage: average,testMethod: theMethod,testTime: endTime});dojo.byId("results").innerHTML += msg;setTimeout("_toggleRunMsg()",250);// Nodes have to be in the document for IE7 to GC them.// Do this after generating the widgets to dispel// notion that widget parents have to be in document// a-priori.dojo.byId("limbo").appendChild(tmpNode);}function doDebug(){var key = escape(dojo.toJson(masterResults));dojo.byId('hiddenHolder').value = key;return true;}</script><style>@import "../../dijit/themes/tundra/tundra.css";@import "../../dijit/themes/dijit.css";@import "../../dojo/resources/dojo.css";@import "../../dijit/tests/css/dijitTests.css";#limbo {display: none;}#theContainer {float:left;display: block; padding:12px; padding-top:0;width:420px; margin-left:20px;background-color:#fff; -moz-border-radius:8pt 8pt;border:2px solid #ededed;}#leftControl { float:left; width:300px; }#testControl, #submitControl { border:2px solid #ededed; padding:12px; -moz-border-radius:8pt 8pt; background-color:#fff; }#results { overflow:auto; height:300px; border:1px solid #ccc; color:darkred; padding:8px; }#results li { list-style-type: none; }#results ul { margin:0; padding:0; }.runHolder, .submitButton {border:1px solid #ccc; padding:3px; -moz-border-radius:8pt 8pt; text-align:center;cursor:pointer; background-color:#ededed; display:block; width:125px;}</style></head><body class="tundra"><div id="limbo"></div><h1 class="testTitle">Dojo Benchmark Tool</h1><div id="leftControl"><div id="testControl">Class: <input type="text" name="dijit" id="classNode" value="dijit.form.Button"><br><br>Count: <input type="text" name="count" id="countNode" value="100" size="4" ><br><br>Method: <label for="parse"><input type="radio" name="theMethod" value="parse" id="parse" checked="on"> Parse</label><label for="create"><input type="radio" name="theMethod" value="create" id="create"> Create</label><br><br><span onclick="runTest()" class="runHolder"><span id="runner"> Run Test </span></span></div><br><div id="submitControl"><p>* The results of these tests are important to us. Please feel free to submit your dataSetto Dojotoolkit.org. Your privacy will be respected.</p><div id="hiddenResults"><form id="resultForm" action="http://dojo.inpdx.net/benchResults.php"method="POST" onsubmit="doDebug()"><input type="hidden" id="hiddenHolder" value="" name="key"><input type="submit" value=" Submit Data " class="submitButton"></form></div></div></div><div id="theContainer"><h3>Results:</h3><div id="results"></div></div></body></html>