SHARE
TWEET

szopen

a guest Jan 24th, 2010 117 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>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top