Bez popisu

index.html 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <!doctype html>
  2. <html>
  3. <head>
  4. <title>Holder.js Render Performance Benchmark</title>
  5. </head>
  6. <body>
  7. <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
  8. <script src="http://cdnjs.cloudflare.com/ajax/libs/async/1.0.0/async.min.js"></script>
  9. <script>
  10. var releases_all = '1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.9.0 2.0 2.1.0 2.2.0 2.3.0 2.4.0 2.5.0 2.6.0 2.7.0'.split(' ');
  11. //1.0 = original, 1.5 = fluid placeholders added, 2.4 = svg, test suite added, 2.5 = invisible placeholders rendering, 2.7.1 = latest stable, master = latest unstable
  12. //extra last test is added to remove any side effect of running last
  13. var releases_important = '2.6.1 1.5 master 2.7.1 2.5.2'.split(' ');
  14. var idx = 1;
  15. function test(release) {
  16. return function (cb) {
  17. var iframe = $("<iframe/>").attr({
  18. 'width': 450,
  19. 'height': 300,
  20. 'src': 'testcase.html?release=' + release
  21. });
  22. $('body').append(iframe);
  23. var to = setTimeout(function() {
  24. throw "Test timed out: " + release;
  25. }, 15000);
  26. $(window).on('message.' + idx, function(e) {
  27. var event = e.originalEvent;
  28. var data = event.data.split(' ');
  29. if (data[0] === 'start') {
  30. clearTimeout(to);
  31. } else if (data[0] === 'end') {
  32. var hz = parseFloat(data[2]).toFixed(2);
  33. $(window).off('message.' + idx);
  34. iframe.remove();
  35. idx++;
  36. cb(null, data[1] + ' ' + hz);
  37. }
  38. });
  39. };
  40. }
  41. var tests = releases_important.map(function (release) {
  42. return test(release);
  43. });
  44. document.title = 'Starting tests in 5 seconds';
  45. setTimeout(function () {
  46. document.title = 'Tests started';
  47. async.series(tests, function (err, results) {
  48. console.log(results);
  49. });
  50. }, 5000);
  51. </script>
  52. </body>
  53. </html>