Advertisement
Guest User

szopen

a guest
Jan 24th, 2010
178
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  3.   <head>
  4.     <title>jQuery 1.4 speed test</title>
  5.     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  6.     <script src="jquery-1.4.min.js" type="text/javascript"></script>
  7.     <script type="text/javascript">
  8.      $(function() {
  9.        var w1=[0,0,0,0,0,0];
  10.        var slice, startTime,endTime;
  11.        var rep = 10000;
  12.        $('h1').each( function() {
  13.         var ver = 0;
  14.         // Version 1
  15.         slice = [];
  16.         startTime = new Date().getTime();
  17.         for ( var i = 0; i < rep; ++i )
  18.         {
  19.             var obj = $(this).parent().children();
  20.             var start = obj.index(this) + 1;
  21.             var end   = obj.index($(this).nextAll('h1:first'));
  22.             if ( end == -1 ) {
  23.                 slice = obj.slice(start);
  24.             } else {
  25.                 slice = obj.slice(start,end);
  26.             }      
  27.         }
  28.         endTime = new Date().getTime();
  29.         w1[ver++] += endTime-startTime;
  30.  
  31.         // Version 2 -- 1.4 only
  32.         slice = [];
  33.         startTime = new Date().getTime();
  34.         if (jQuery.fn.jquery == "1.4") {
  35.             for ( var i = 0; i < rep; ++i )
  36.             {
  37.                 var start = $(this).index() + 1;
  38.                 var end   = $(this).nextAll('h1:first').index();
  39.                 if ( end == -1 ) {
  40.                     slice = $(this).parent().children().slice(start);
  41.                 } else {
  42.                     slice = $(this).parent().children().slice(start,end);
  43.                 }
  44.             }
  45.         }
  46.         endTime = new Date().getTime();
  47.         w1[ver++] += endTime-startTime;
  48.  
  49.         // Version 3
  50.         slice = [];
  51.         startTime = new Date().getTime();
  52.         for ( var i = 0; i < rep; ++i )
  53.         {
  54.             slice = $(this).nextAll().not($(this).nextAll('h1:eq(0)').nextAll().andSelf());
  55.         }
  56.         endTime = new Date().getTime();
  57.         w1[ver++] += endTime-startTime;
  58.  
  59.         // Version 4, only simple selectors, possibly non cross-browser
  60.         slice = [];
  61.         startTime = new Date().getTime();
  62.         for ( var i = 0; i < rep; ++i )
  63.         {
  64.             var elm = this;
  65.             while (elm = elm.nextSibling) {
  66.                 if ( elm.nodeType == 1 ) {
  67.                     if ( elm.tagName == 'H1' ) break;
  68.                     slice.push(elm);
  69.                 }
  70.             }
  71.         }
  72.         endTime = new Date().getTime();
  73.         w1[ver++] += endTime-startTime;
  74.  
  75.         // Version 5, jQuery selector, possibly non cross-browser
  76.         slice = [];
  77.         startTime = new Date().getTime();
  78.         for ( var i = 0; i < rep; ++i )
  79.         {
  80.             var elm = this;
  81.             slice = [];
  82.             while (elm = elm.nextSibling) {
  83.                 if ( elm.nodeType == 1 ) {
  84.                     if ( $(elm).is('h1') ) break;
  85.                     slice.push(elm);
  86.                 }
  87.             }
  88.         }
  89.         endTime = new Date().getTime();
  90.         w1[ver++] += endTime-startTime;
  91.  
  92.         // Version 6, new jQuery 1.4 method
  93.         slice = [];
  94.         startTime = new Date().getTime();
  95.         if (jQuery.fn.jquery == "1.4") {
  96.             for ( var i = 0; i < rep; ++i )
  97.             {
  98.                 slice = $(this).nextUntil('h1');
  99.             }
  100.         }
  101.         endTime = new Date().getTime();
  102.         w1[ver++] += endTime-startTime;    
  103.        });
  104.        alert(w1);
  105.      });
  106.      /*
  107.      All on Win2008R2 x64
  108.      jQuery 1.4.min
  109.      Method #          :   1    2    3   4     5    6
  110.      Firefox 3.6       : 4675,6692,6282,168, 6260,13187 | 4<1<5<3<2<6
  111.      Opera 10.10       : 6518,9260,8385,231,10205,21853 | 4<1<3<2<5<6
  112.      Chrome 3.0.195.38 : 2870,4225,3487,126, 3979,8429  | 4<1<3<5<2<6
  113.      
  114.      jQuery 1.3.2.min
  115.      Method #          :   1    2    3   4     5    6
  116.      Firefox 3.6       : 4957,   x,6490,294, 5908,    x | 4<1<5<3
  117.      Opera 10.10       : 6400,   x,8096,197, 8313,    x | 4<1<3<5
  118.      Chrome 3.0.195.38 : 2399,   x,2987,162, 3317,    x | 4<1<3<5
  119.      */
  120.     </script>
  121.   </head>
  122. <body>
  123.   <h1>Section 1</h1>
  124.   <p>Content</p>
  125.   <h2>Subsection 1.1</h2>
  126.   <p>Content</p>
  127.   <h2>Subsection 1.2</h2>
  128.   <p>Content</p>
  129.   <h2>Subsection 1.3</h2>
  130.   <p>Content</p>
  131.   <h1>Section 2</h1>
  132.   <p>Content</p>
  133.   <h2>Subsection 2.1</h2>
  134.   <p>Content</p>
  135.   <h2>Subsection 2.2</h2>
  136.   <p>Content</p>
  137.   <h1>Section 3</h1>
  138.   <p>Content</p>
  139.   <h2>Subsection 3.1</h2>
  140.   <p>Content</p>
  141.   <h2>Subsection 3.2</h2>
  142.   <p>Content</p>
  143.   <h2>Subsection 3.3</h2>
  144.   <p>Content</p>
  145.   <h2>Subsection 3.4</h2>
  146.   <p>Content</p>
  147. </body>
  148. </html>
Advertisement
Advertisement
Advertisement
RAW Paste Data Copied
Advertisement