/public/javascripts/dojo/release/dojo/dojox/grid/tests/test_grid_performance.html

http://enginey.googlecode.com/ · HTML · 121 lines · 119 code · 2 blank · 0 comment · 0 complexity · 4d77c9b898c20e8137a0e16b49d184af MD5 · raw file

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title>Test dojox.grid.DataGrid Basic</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta>
  6. <style type="text/css">
  7. @import "../resources/Grid.css";
  8. @import "../resources/tundraGrid.css";
  9. @import "../../../dojo/resources/dojo.css";
  10. @import "../../../dijit/themes/tundra/tundra.css";
  11. body {
  12. font-size: 0.9em;
  13. font-family: Geneva, Arial, Helvetica, sans-serif;
  14. }
  15. .heading {
  16. font-weight: bold;
  17. padding-bottom: 0.25em;
  18. }
  19. </style>
  20. <script type="text/javascript" src="../../../dojo/dojo.js" djConfig="isDebug:false"></script>
  21. <script type="text/javascript">
  22. dojo.require("dojox.grid.DataGrid");
  23. dojo.require("dojo.data.ItemFileWriteStore");
  24. dojo.require("dojo.parser");
  25. </script>
  26. <script type="text/javascript" src="support/test_data.js"></script>
  27. <script type="text/javascript">
  28. var layout = [[
  29. {name: 'Column 1', field: 'col1'},
  30. {name: 'Column 2', field: 'col2'},
  31. {name: 'Column 3', field: 'col3'},
  32. {name: 'Column 4', field: 'col4', width: "150px"},
  33. {name: 'Column 5', field: 'col5'}
  34. ],[
  35. {name: 'Column 6', field: 'col6'},
  36. {name: 'Column 7', field: 'col7'},
  37. {name: 'Column 8'},
  38. {name: 'Column 9', field: 'col3', colSpan: 2}
  39. ]];
  40. </script>
  41. <script type="text/javascript">
  42. var startCreationTests = function(){
  43. setTimeout(function(){
  44. var total_time = 0;
  45. for(var i=0; i<30; i++){
  46. //var mod = new dojox.grid._data.Table(null, data);
  47. var st_time = new Date().getTime();
  48. var grid = new dojox.grid.DataGrid({
  49. store: test_store,
  50. structure: layout
  51. });
  52. dojo.body().appendChild(grid.domNode);
  53. grid.startup();
  54. total_time += (new Date().getTime() - st_time);
  55. dojo.body().removeChild(grid.domNode);
  56. }
  57. console.log("Average time for programmatic creation with no source node: ", total_time / 30);
  58. setTimeout(function(){
  59. total_time = 0;
  60. for(var i=0; i<30; i++){
  61. //var mod = new dojox.grid._data.Table(null, data);
  62. var node = dojo.doc.createElement("div");
  63. dojo.body().appendChild(node);
  64. var st_time = new Date().getTime();
  65. var grid = new dojox.grid.DataGrid({
  66. store: test_store,
  67. structure: layout
  68. }, node);
  69. total_time += (new Date().getTime() - st_time);
  70. dojo.body().removeChild(grid.domNode);
  71. }
  72. console.log("Average time for programmatic creation with source node: ", total_time / 30);
  73. }, 1000);
  74. }, 1000);
  75. }
  76. var startStoreReuseTests = function(){
  77. setTimeout(function(){
  78. var total_time = 0;
  79. for(var i=0; i<30; i++){
  80. var st_time = new Date().getTime();
  81. var mod = new dojo.data.ItemFileReadStore({data: data});
  82. var grid = new dojox.grid.DataGrid({
  83. store: mod,
  84. structure: layout
  85. });
  86. dojo.body().appendChild(grid.domNode);
  87. grid.startup();
  88. total_time += (new Date().getTime() - st_time);
  89. dojo.body().removeChild(grid.domNode);
  90. }
  91. console.log("Total time to create 30 grids with separate stores (including store creation time): ", total_time);
  92. setTimeout(function(){
  93. total_time = 0;
  94. var mod = new dojo.data.ItemFileReadStore({data: data});
  95. for(var i=0; i<30; i++){
  96. var node = dojo.doc.createElement("div");
  97. dojo.body().appendChild(node);
  98. var st_time = new Date().getTime();
  99. var grid = new dojox.grid.DataGrid({
  100. store: mod,
  101. structure: layout
  102. });
  103. dojo.body().appendChild(grid.domNode);
  104. grid.startup();
  105. total_time += (new Date().getTime() - st_time);
  106. dojo.body().removeChild(grid.domNode);
  107. }
  108. console.log("Total time to create 30 grids with a shared store: ", total_time);
  109. }, 1000);
  110. }, 1000);
  111. }
  112. </script>
  113. </head>
  114. <body>
  115. <div class="heading">dojox.grid.DataGrid Performance Test</div>
  116. <button onclick="startCreationTests()">Start Creation Tests</button>
  117. <button onclick="startStoreReuseTests()">Start Store Re-use Tests</button>
  118. </body>
  119. </html>