test.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  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. var allErrorCount = 0;
  16. var autoTest = false;
  17. function runTest(method, isAsync) {
  18. ++pushCount;
  19. document.getElementById('start').innerHTML = 'Test: ' + pushCount;
  20. document.getElementById('resTotal').innerHTML = 'running';
  21. for (var i = 1; i <= totalCount; ++i) {
  22. document.getElementById('res'+i).innerHTML = "ready";
  23. }
  24. errorCount = 0;
  25. pendingCount = totalCount;
  26. for (var i = 1; i <= totalCount; ++i) {
  27. fetch(i, method, isAsync);
  28. }
  29. }
  30. function runAutoTest() {
  31. if (autoTest) {
  32. runTest("POST", true)
  33. setTimeout("runAutoTest()", 250)
  34. }
  35. }
  36. function fetch(id, method, isAsync) {
  37. document.getElementById('res'+id).innerHTML = "pending";
  38. $.ajax({
  39. async: isAsync,
  40. url: 'echo.cgi?id=' + id,
  41. type: method,
  42. timeout: 2000,
  43. data: { 'id' : id ,
  44. 'longText1' : "adfsdfasdklkjlgasfdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  45. 'longText2' : "bsdfsdfasdklkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  46. 'longText3' : "sdfsadagsdklkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  47. 'longText4' : "q34sdfas3fhbkjlgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  48. 'longText5' : "askj2kjcvxychklgasdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  49. 'longText6' : "asdfjklhlkjhv8öajsdfjkhq345sdafbmkanq3trsdghkjqw4etrjlkabsdfkabvauiregtlkjasdbvabl4btrjawebbfjsdhbjk342r5bjksdbfkljbhasdfbhj234qjhasdg76k11234jhv900adfasddsfmzasdfhjgajsvhgkjhasdf77aefcae4fkjzasdfgukeaf7dkkegasdfigjcvxgui",
  50. 'async' : isAsync
  51. },
  52. dataType: 'json',
  53. succes: function(data) {
  54. },
  55. error: function() {
  56. ++errorCount;
  57. },
  58. complete: function(jqXHR, textStatus) {
  59. --pendingCount;
  60. document.getElementById('res'+id).innerHTML = textStatus;
  61. console.log('id: ' + id + ' (' + pendingCount + '/' + totalCount + '), status: ' + textStatus);
  62. if (pendingCount == 0) {
  63. document.getElementById('resTotal').innerHTML = 'done';
  64. console.log('complete, error count: ' + errorCount);
  65. allErrorCount = allErrorCount + errorCount;
  66. document.getElementById('resSAll').innerHTML = 'total errors: ' + allErrorCount + "/" + (pushCount*totalCount);
  67. }
  68. }
  69. });
  70. }
  71. //-->
  72. </script>
  73. </head>
  74. <body>
  75. <p>
  76. <div id="start">Test not started.</div>
  77. </p>
  78. <p>
  79. <table>
  80. <tr>
  81. <td>
  82. <input id="testButton1" type="button" onclick="javascript:runTest('GET', false)" value="sync GET"></input>
  83. </td>
  84. <td>
  85. <input id="testButton2" type="button" onclick="javascript:runTest('POST', false)" value="sync POST"></input>
  86. </td>
  87. </tr>
  88. <tr>
  89. <td>
  90. <input id="testButton3" type="button" onclick="javascript:runTest('GET', true)" value="async GET"></input>
  91. </td>
  92. <td>
  93. <input id="testButton4" type="button" onclick="javascript:runTest('POST', true)" value="async POST"></input>
  94. </td>
  95. </tr>
  96. <tr>
  97. <td>
  98. <input id="testButton5" type="button" onclick="autoTest=!autoTest; javascript:runAutoTest()" value="automatic test"></input>
  99. </td>
  100. </tr>
  101. <tr>
  102. <td>
  103. <input id="testButtonReset" type="button" onclick="autoTest=false; javascript:location.reload(true)" value="reset"></input>
  104. </td>
  105. <td>
  106. </td>
  107. </tr>
  108. <tr>
  109. <td>
  110. <input id="testButtonBox" type="button" onclick="javascript:mbox()" value="MsgBox"></input>
  111. </td>
  112. <td>
  113. </td>
  114. </tr>
  115. </table>
  116. </p>
  117. <p>
  118. <table border="1">
  119. <tr><th>Test</th><th>Result</th></tr>
  120. <tr><td>1</td><td><div id="res1">not started</div></td></tr>
  121. <tr><td>2</td><td><div id="res2">not started</div></td></tr>
  122. <tr><td>3</td><td><div id="res3">not started</div></td></tr>
  123. <tr><td>4</td><td><div id="res4">not started</div></td></tr>
  124. <tr><td>5</td><td><div id="res5">not started</div></td></tr>
  125. <tr><td>6</td><td><div id="res6">not started</div></td></tr>
  126. <tr><td>7</td><td><div id="res7">not started</div></td></tr>
  127. <tr><td>8</td><td><div id="res8">not started</div></td></tr>
  128. <tr><td>9</td><td><div id="res9">not started</div></td></tr>
  129. <tr><td>10</td><td><div id="res10">not started</div></td></tr>
  130. </table>
  131. <div id="resTotal">Push [Test] to start.</div>
  132. <div id="resSAll"></div>
  133. </p>
  134. </body>
  135. </html>