Bug Tracker

Ticket #5921: test.html

File test.html, 4.0 KB (added by szopen, 10 years ago)
Line 
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>