• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Ajax实现进度条_js

javascript 搞代码 7年前 (2018-06-13) 273次浏览 已收录 0个评论

Ajax实现的进度条,如下代码:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. <html
  3. <head> 
  4. <title>Ajax Progress Bar - www.cxybl.com</title> 
  5. <script type="text/javascript"
  6. var xmlHttp; 
  7. var key; 
  8. var bar_color = 'gray';//进度条的颜色 
  9. var span_id = "block"
  10. var clear = " "
  11. function createXMLHttpRequest()//创建XMLHttpRequest对象 
  12. if(window.ActiveXObject) 
  13. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
  14. else if(window.XMLHttpRequest) 
  15. xmlHttp = new XMLHttpRequest(); 
  16. function go() 
  17. createXMLHttpRequest();//创建XMLHttpRequest对象 
  18. checkDiv();//显示滚动条 
  19. xmlHttp.onreadystatechange = callBack;//设置回调函数 
  20. var url = "/AjaxDemo/servlet/ProgressBarServlet?task=create";//请求的地址 
  21. var button = document.getElementById("go"); 
  22. button.disabled = true;//设置按钮不可用 
  23. xmlHttp.open("get",url,true);//打开对服务器的连接 
  24. xmlHttp.send();//发送请求 
  25. function callBack() 
  26. if(xmlHttp.readyState == 4) 
  27. if(xmlHttp.status == 200) 
  28. setTimeout("pollServer()",500);//定时调用 
  29. function pollServer() 
  30. createXMLHttpRequest(); 
  31. var url="/AjaxDemo/servlet/ProgressBarServlet?task=poll&key="+key; 
  32. xmlHttp.onreadystatechange = pollCallBack; 
  33. xmlHttp.open("GET",url,true); 
  34. xmlHttp.send(); 
  35. function pollCallBack() 
  36. if(xmlHttp.readyState == 4) 
  37. if(xmlHttp.status == 200) 
  38. var percent_complete = xmlHttp.responseXML.getElementsByTagName("percent")[0] 
  39. .firstChild.data;//从服务器端获得响应信息 
  40. var index = processResult(percent_complete); 
  41. for(var i = 1; i<=index; i++) 
  42. var elem = document.getElementById("block"+i); 
  43. elem.innerHTML = clear; 
  44. elem.style.backgroundColor = bar_color; 
  45. var next_cell = i+1; 
  46. if(next_cell > index && next_cell <= 9) 
  47. document.getElementById("block"+next_cell).innerHTML = percent_complete + "%"
  48. if(index <9 ) 
  49. setTimeout("pollServer()",500); 
  50. else 
  51. document.getElementById("complete").innerHTML = "Complete!"
  52. document.getElementById("go").disabled = false
  53. function processResult(percent_complete) 
  54. var ind; 
  55. if(percent_complete.length == 1) 
  56. ind = 1; 
  57. else if(percent_complete.length == 2) 
  58. ind = percent_complete.substring(0,1); 
  59. else 
  60. ind = 9; 
  61. return ind; 
  62. function checkDiv() 
  63. var progress_bar = document.getElementById("progressBar"); 
  64. if(progress_bar.style.visibility == "visible"
  65. clearBar(); 
  66. document.getElementById("complete").innerHTML = ""
  67. else 
  68. progress_bar.style.visibility = "visible"
  69. function clearBar() 
  70. for(var i =1; i<10; i++) 
  71. var elem = document.getElementById("block"+i); 
  72. elem.innerHTML = clear; 
  73. elem.style.backgroundColor = "white"
  74. </script> 
  75. </head> 
  76. <body> 
  77. <h1>Ajax Progress Bar Example</h1> 
  78. Launch long-running process: 
  79. <input type="button" value="Launch" id="go" onclick="go()"/> 
  80. <p> 
  81. <table align="center"
  82. <tbody> 
  83. <tr> 
  84. <td> 
  85. <div id="progressBar" style="padding:2px;border:solid black 2px;visibility:hidden"
  86. <span id="block1"> </span> 
  87. <span id="block2"> </span> 
  88. <span id="block3"> </span> 
  89. <span id="block4"> </span> 
  90. <span id="block5"> </span> 
  91. <span id="block6"> </span> 
  92. <span id="block7"> </span> 
  93. <span id="block8"> </span> 
  94. <span id="block9"> </span> 
  95. </div> 
  96. </td> 
  97. </tr> 
  98. <tr><td align="center" id="complete"></td></tr> 
  99. </tbody> 
  100. </table> 
  101. </body> 
  102. </html> 
  103.  
  104.  
  105. package cn.Ajax.test; 
  106. import java.io.IOException; 
  107. import java.io.PrintWriter; 
  108. import javax.servlet.ServletException; 
  109. import javax.servlet.http.HttpServlet; 
  110. import javax.servlet.http.HttpServletRequest; 
  111. import javax.servlet.http.HttpServletResponse; 
  112. @SuppressWarnings("serial"
  113. public class ProgressBarServlet extends HttpServlet { 
  114. private int counter = 1; 
  115. /** 
  116. * The doGet method of the servlet. <br> 
  117. * 
  118. * This method is called when a form has its tag value method equals to get. 
  119. * 
  120. * @param request the request send by the client to the server 
  121. * @param response the response send by the server to the client 
  122. * @throws ServletException if an error occurred 
  123. * @throws IOException if an error occurred 
  124. */ 
  125. public void doGet(HttpServletRequest request, HttpServletResponse response) 
  126. throws ServletException, IOException { 
  127. String task = request.getParameter("task"); 
  128. String res=""
  129. if(task.equals("create")){ 
  130. res = "<key>1</key>"
  131. counter = 1; 
  132. else
  133. String percent = ""
  134. switch (counter) { 
  135. case 1: percent = "10";break
  136. case 2: percent = "23";break
  137. case 3: percent = "35";break
  138. case 4: percent = "51";break
  139. case 5: percent = "64";break
  140. case 6: percent = "73";break
  141. case 7: percent = "89";break
  142. case 8: percent = "100";break
  143. counter++; 
  144. res ="<percent>"+percent+"</percent>"
  145. PrintWriter out = response.getWriter(); 
  146. response.setContentType("text/xml"); 
  147. response.setHeader("Cache-Control""no-cache"); 
  148. out.println("<response>"); 
  149. out.println(res); 
  150. out.println("</response>"); 
  151. out.close(); 
  152. /** 
  153. * The doPost method of the servlet. <br> 
  154. * 
  155. * This method is called when a form has its tag value method equals to post. 
  156. * 
  157. * @param request the request send by the client to the server 
  158. * @param response the response send by the server to the client 
  159. * @throws ServletException if an error occurred 
  160. * @throws IOException if an error occurred 
  161. */ 
  162. public void doPost(HttpServletRequest request, HttpServletResponse response) 
  163. throws ServletException, IOException { 
  164. doGet(request, response); 
  165. }  

欢迎大家阅读《Ajax实现进度条_js,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Ajax实现进度条_js
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址