test.html 6.0 KB

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