test.html 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <title>Test</title>
  5. <script type='text/javascript' language="javascript" src='jquery.js'></script>
  6. <script type='text/javascript' language="javascript">
  7. <!--
  8. function mbox() {
  9. alert('Javascript OK');
  10. }
  11. var totalCount = 10;
  12. var pendingCount = 0;
  13. var errorCount = 0;
  14. var pushCount = 0;
  15. function runTest(method, isAsync) {
  16. ++pushCount;
  17. document.getElementById('start').innerHTML = 'Test: ' + pushCount;
  18. document.getElementById('resTotal').innerHTML = 'running';
  19. for (var i = 1; i <= totalCount; ++i) {
  20. document.getElementById('res'+i).innerHTML = "ready";
  21. }
  22. errorCount = 0;
  23. pendingCount = totalCount;
  24. for (var i = 1; i <= totalCount; ++i) {
  25. fetch(i, method, isAsync);
  26. }
  27. }
  28. function fetch(id, method, isAsync) {
  29. document.getElementById('res'+id).innerHTML = "pending";
  30. $.ajax({
  31. async: isAsync,
  32. url: 'echo.cgi?id=' + id,
  33. type: method,
  34. timeout: 10000,
  35. data: { 'id' : id ,
  36. 'longText1' : "adfsdfasdklkjlgasfdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  37. 'longText2' : "bsdfsdfasdklkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  38. 'longText3' : "sdfsadagsdklkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  39. 'longText4' : "q34sdfas3fhbkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  40. 'longText5' : "askj2kjcvxychklgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  41. 'longText6' : "asdfjklhlkjhv8öajsdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  42. 'async' : isAsync
  43. },
  44. dataType: 'json',
  45. succes: function(data) {
  46. },
  47. error: function() {
  48. ++errorCount;
  49. },
  50. complete: function(jqXHR, textStatus) {
  51. --pendingCount;
  52. document.getElementById('res'+id).innerHTML = textStatus;
  53. console.log('id: ' + id + ' (' + pendingCount + '/' + totalCount + '), status: ' + textStatus);
  54. if (pendingCount == 0) {
  55. document.getElementById('resTotal').innerHTML = 'done';
  56. console.log('complete, error count: ' + errorCount);
  57. }
  58. }
  59. });
  60. }
  61. //-->
  62. </script>
  63. </head>
  64. <body>
  65. <p>
  66. <div id="start">Test not started.</div>
  67. </p>
  68. <p>
  69. <table>
  70. <tr>
  71. <td>
  72. <input id="testButton1" type="button" onclick="javascript:runTest('GET', false)" value="sync GET"></input>
  73. </td>
  74. <td>
  75. <input id="testButton2" type="button" onclick="javascript:runTest('POST', false)" value="sync POST"></input>
  76. </td>
  77. </tr>
  78. <tr>
  79. <td>
  80. <input id="testButton3" type="button" onclick="javascript:runTest('GET', true)" value="async GET"></input>
  81. </td>
  82. <td>
  83. <input id="testButton4" type="button" onclick="javascript:runTest('POST', true)" value="async POST"></input>
  84. </td>
  85. </tr>
  86. <tr>
  87. <td>
  88. <input id="testButtonReset" type="button" onclick="javascript:location.reload(true)" value="reset"></input>
  89. </td>
  90. <td>
  91. </td>
  92. </tr>
  93. <tr>
  94. <td>
  95. <input id="testButtonBox" type="button" onclick="javascript:mbox()" value="MsgBox"></input>
  96. </td>
  97. <td>
  98. </td>
  99. </tr>
  100. </table>
  101. </p>
  102. <p>
  103. <table border="1">
  104. <tr><th>Test</th><th>Result</th></tr>
  105. <tr><td>1</td><td><div id="res1">not started</div></td></tr>
  106. <tr><td>2</td><td><div id="res2">not started</div></td></tr>
  107. <tr><td>3</td><td><div id="res3">not started</div></td></tr>
  108. <tr><td>4</td><td><div id="res4">not started</div></td></tr>
  109. <tr><td>5</td><td><div id="res5">not started</div></td></tr>
  110. <tr><td>6</td><td><div id="res6">not started</div></td></tr>
  111. <tr><td>7</td><td><div id="res7">not started</div></td></tr>
  112. <tr><td>8</td><td><div id="res8">not started</div></td></tr>
  113. <tr><td>9</td><td><div id="res9">not started</div></td></tr>
  114. <tr><td>10</td><td><div id="res10">not started</div></td></tr>
  115. </table>
  116. <div id="resTotal">Push [Test] to start.</div>
  117. </p>
  118. </body>
  119. </html>