Advertisement
Guest User

Untitled

a guest
Nov 24th, 2010
468
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4.     <title>Bu-bench-ik</title>
  5.     <script type="text/javascript">
  6.         var benchIt = function() {
  7.  
  8.             var st = new Date();
  9.  
  10.             var forceFeedback = true;
  11.  
  12.             var iterationCount = 500;
  13.             var containerNode = document.getElementById( "container" );
  14.             var resultNode = document.getElementById( "result" );
  15.             var containerWidth = containerNode.clientWidth;
  16.             var tplNodes = [];
  17.             for ( var i=0; i<5; i++ ) tplNodes[ i ] = document.getElementById( "tpl" + ( i + 1 ) );
  18.  
  19.             containerNode.innerHTML = "";
  20.             resultNode.innerHTML = "";
  21.  
  22.             for ( var i=iterationCount; i--; ) {
  23.                 var rndIndex = Math.round( Math.random() * 4 );
  24.                 var tmpNode = tplNodes[ rndIndex ];
  25.                 var cloneNode = tmpNode.cloneNode( true );
  26.                 containerNode.appendChild( cloneNode );
  27.                 cloneNode.id = "";
  28.  
  29.                 if ( forceFeedback ) {
  30.                     var prevNode = cloneNode.previousSibling;
  31.                     if( prevNode ) {
  32.                         var prevX = prevNode.offsetLeft;
  33.                         var prevY = prevNode.offsetTop;
  34.                         var cloneY = cloneNode.offsetTop;
  35.  
  36.                         if ( prevY != cloneY ) {
  37.                             prevNode.style.width = ( endX - prevX - 47 ) + "px";
  38.                         }
  39.                     }
  40.                     else
  41.                     {
  42.                         var endX = $getFullOffsetLeft( cloneNode ) + containerWidth;
  43.                     }
  44.                 }
  45.             }
  46.  
  47.             var et = new Date();
  48.             resultNode.innerHTML = et - st;
  49.         };
  50.  
  51.         var $getFullOffsetLeft = function( node ) {
  52.             try {
  53.  
  54.                 var nodeLeft = node.offsetLeft;
  55.                 var nodeParentOffset = node.offsetParent;
  56.  
  57.                 while ( nodeParentOffset ) {
  58.  
  59.                     if ( nodeParentOffset.currentStyle ) {
  60.                         if ( nodeParentOffset.currentStyle.position != "relative" ) nodeLeft += nodeParentOffset.offsetLeft;
  61.                     }
  62.                     else
  63.                     {
  64.                         nodeLeft += nodeParentOffset.offsetLeft;
  65.                     }
  66.  
  67.                     nodeParentOffset = nodeParentOffset.offsetParent;
  68.                 }  
  69.  
  70.                 return nodeLeft;
  71.  
  72.             } catch ( e ) { return 0; }
  73.         }
  74.     </script>
  75.     <style type="text/css">
  76.         body { font: normal 11pt tahoma; margin: 20px; padding: 0px; }
  77.         #container { border: 2px solid #ccc; background: #f2f2f2; margin: 10px 0px; min-height: 1em; width: 500px; overflow: hidden; }
  78.         .tpl1, .tpl2, .tpl3, .tpl4, .tpl5 { float: left; display: none; border: 1px solid #999; background: #ccc; padding: 10px 20px; margin: 0px 5px 5px 0px; }
  79.         #container .tpl1, #container .tpl2, #container .tpl3, #container .tpl4, #container .tpl5 { display: block; }
  80.         .tpl1 { font-size: 18pt; }
  81.         .tpl2 { font: bold 8pt tahoma; }
  82.         .tpl4 { font-size: 24pt; }
  83.         .tpl5 { font: bold 7pt tahoma; padding: 3px 20px; }
  84.     </style>
  85.  
  86.  
  87. </head>
  88. <body>
  89.     <a href="#" onclick="benchIt(); return false;">BENCH!</a>
  90.     <div id="result"></div>
  91.     <div id="container"></div>
  92.     <div id="tpl1" class="tpl1">Test 1</div></div>
  93.     <div id="tpl2" class="tpl2">One two three...</div></div>
  94.     <div id="tpl3" class="tpl3">And justice for all...</div></div>
  95.     <div id="tpl4" class="tpl4">o_O</div></div>
  96.     <div id="tpl5" class="tpl5">Habr</div></div>
  97.  
  98. </body>
  99. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement