亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > AJAX > 正文

使用AJAX實現Web頁面進度條的實例分享

2024-09-01 08:33:44
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了使用AJAX實現Web頁面進度條的實例分享,利用AJAX的異步來顯示服務器端的處理進度是當下比較流行的做法,需要的朋友可以參考下
 

在應用程序的安裝和下載過程中,進度條的使用已經是非常普遍了。進度條可以用來表識項目的完成進度,可以用百分比或數字表示,可以水平放置。利用Ajax技術創建進度條,功能顯得更加強大的快捷。
現在創建一個實例,以演示使用Ajax技術實現進度條。該實例同樣可以分為客戶端代碼和服務端代碼。
 
1,服務端代碼    
服務端代碼主要實現一句客戶端的請求信息,返回相應的百分比數字。打開記事本,輸入下列代碼:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %> <%! int counter = 1;//注意:多用戶將共享此變量,此進度條只適合單用戶 %> <%  String task = request.getParameter("task");   String res = "";      if (task.equals("create")) {    res = "1";    counter = 1;   }   else {    String percent = "";    switch (counter) {     case 1: percent = "10"; break;     case 2: percent = "23"; break;     case 3: percent = "35"; break;     case 4: percent = "51"; break;     case 5: percent = "64"; break;     case 6: percent = "73"; break;     case 7: percent = "89"; break;     case 8: percent = "100"; break;    }    counter++;         res = "<percent>" + percent + "</percent>";   }      // PrintWriter out = response.getWriter();   response.setContentType("text/xml");   response.setHeader("Cache-Control", "no-cache");   out.println("<response>");   out.println(res);   out.println("</response>");   out.close();  %> 
 
將上述代碼保存,名稱為ProgressBar.jsp。在該文件中,聲明了一個變量counter,并賦值為1,該變量是進度條返回百分比數字的依據。在下面使用request對象獲取客戶端傳送的變量task的值,如果該值為create,表示需要重新創建進度條,并設定counter的值為1;如果task不是create,則會依據counter的值返回百分比數字,完成一次操作,counter值加1。
 
2,客戶端代碼
本實例的客戶端代碼主要實現依據返回百分比數字顯示進度條的狀態。打開記事本,輸入下列代碼:
<html>  <head>  <title>JSP+Ajax 進度條</title>  <script type="text/javascript">   var xmlHttp;   var bar_color = 'blue';   var span_id = "yellow";   var clear = " "    function createXMLHttpRequest() {    if (window.ActiveXObject) {     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");    }    else if (window.XMLHttpRequest) {     xmlHttp = new XMLHttpRequest();        }   }    function go() {    createXMLHttpRequest();    checkDiv();    var url = "ProgressBarJsp.jsp?task=create";    xmlHttp.open("GET", url, true);    xmlHttp.onreadystatechange = goCallback;    xmlHttp.send(null);   }    function goCallback() {    if (xmlHttp.readyState == 4) {     if (xmlHttp.status == 200) {      setTimeout("pollServer()", 2000);     }    }   }      function pollServer() {    createXMLHttpRequest();    var url = "ProgressBarJsp.jsp?task=poll";    xmlHttp.open("GET", url, true);    xmlHttp.onreadystatechange = pollCallback;    xmlHttp.send(null);   }      function pollCallback() {    if (xmlHttp.readyState == 4) {     if (xmlHttp.status == 200) {      var percent_complete = xmlHttp.responseXML.getElementsByTagName("percent")[0].firstChild.data;            var index = processResult(percent_complete);      for (var i = 1; i <= index; i++) {       var elem = document.getElementById("block" + i);       elem.innerHTML = clear;        elem.style.backgroundColor = bar_color;       var next_cell = i + 1;       if (next_cell > index && next_cell <= 9) {        document.getElementById("block" + next_cell).innerHTML = percent_complete + "%";       }      }      if (index < 9) {       setTimeout("pollServer()", 2000);      } else {       document.getElementById("complete").innerHTML = "網站已完成加載!";      }     }    }   }      function processResult(percent_complete) {    var ind;    if (percent_complete.length == 1) {     ind = 1;    } else if (percent_complete.length == 2) {     ind = percent_complete.substring(0, 1);    } else {     ind = 9;    }    return ind;   }    function checkDiv() {    var progress_bar = document.getElementById("progressBar");    if (progress_bar.style.visibility == "visible") {     clearBar();     document.getElementById("complete").innerHTML = "";    } else {     progress_bar.style.visibility = "visible"    }   }      function clearBar() {    for (var i = 1; i < 10; i++) {     var elem = document.getElementById("block" + i);     elem.innerHTML = clear;     elem.style.backgroundColor = "white";    }   }  </script>  </head>  <body onload="go();">  <h1 align=center>網站正在加載中,請稍候</h1>   <p>  <table align="center">   <tbody>    <tr><td>     <div id="progressBar" style="padding:2px;border:solid yellow 2px;visibility:hidden">      <span id="block1"> </span>      <span id="block2"> </span>      <span id="block3"> </span>      <span id="block4"> </span>      <span id="block5"> </span>      <span id="block6"> </span>      <span id="block7"> </span>      <span id="block8"> </span>      <span id="block9"> </span>     </div>    </td></tr>    <tr><td align="center" id="complete"></td></tr>   </tbody>  </table>  </body> </html> 

將上述代碼保存,名稱為JspprogressBar.html。在該文件中,JavaScript函數createXMLHttpRequest()主要用來創建XMLHttpRequest對象,go()函數完成想服務器端發送異步請求,該函數在網頁加載時被調用,其主要作用就是通知服務器,并在客戶端開始運行進度條。GoCallback()函數主要用于處理服務端的響應,并每隔2秒調用pollServer()函數也是用于向服務端發送異步請求,主要請求服務器端響應的百分數字。PollCallback()函數主要用于處理服務器端響應,即依據服務器端的返回的數字,指定進度條的顯示狀態。這里需要注意的是,goCallback()函數只執行一次,而PollCallback()函數可以執行多次,其余的三個函數都是實現進度條的輔助函數。
 
3,運行
將上述兩個Jsp文件復制到JSP目錄下。運行效果圖如下:

AJAX,進度條



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲综合久久| 亚洲成人激情视频| 成人在线中文字幕| 久久精品视频在线播放| 欧美国产日韩一区二区| 91精品一区二区| 日韩av影视综合网| 欧美日韩成人精品| 日韩av电影免费观看高清| 精品爽片免费看久久| 97碰碰碰免费色视频| 日韩中文字幕在线免费观看| 亚洲最大的免费| 色综合久久久久久中文网| 日韩欧美极品在线观看| 精品福利一区二区| 成人信息集中地欧美| 久久这里只有精品99| 热re91久久精品国99热蜜臀| 国产精品h片在线播放| 色小说视频一区| 日韩精品极品在线观看| 26uuu国产精品视频| 伊人久久久久久久久久久久久| 国产精品久久久久久网站| 久久天天躁狠狠躁夜夜躁2014| 国外成人免费在线播放| 波霸ol色综合久久| 精品亚洲aⅴ在线观看| 欧美日韩国产999| 欧美www视频在线观看| 欧美日韩国产二区| 永久免费看mv网站入口亚洲| 欧美激情喷水视频| 中文字幕在线看视频国产欧美在线看完整| 国产在线98福利播放视频| 亚洲美女精品久久| 国产精品91久久久| 亚洲一区二区免费在线| 欧美精品免费在线观看| 精品国产一区久久久| 国产91亚洲精品| 国产精品永久在线| 国产中文字幕亚洲| 欧美激情一区二区三区在线视频观看| 亚洲国产精品久久久久秋霞不卡| 色视频www在线播放国产成人| 欧美激情精品久久久久久黑人| 成人av在线网址| 欧美麻豆久久久久久中文| 一区二区欧美亚洲| 8090理伦午夜在线电影| 91av在线国产| 欧美另类99xxxxx| 亚洲国产古装精品网站| 午夜精品久久久久久久99热| 国产97人人超碰caoprom| 热久久99这里有精品| 91精品国产综合久久香蕉的用户体验| 亚洲成色777777在线观看影院| 国内精品视频一区| 欧美成人午夜激情视频| 亚洲iv一区二区三区| 亚洲天天在线日亚洲洲精| 亚洲精品中文字幕女同| 最近免费中文字幕视频2019| 色婷婷**av毛片一区| 国产日韩视频在线观看| 懂色av一区二区三区| 日本欧美国产在线| 欧美激情网友自拍| 丁香五六月婷婷久久激情| 亚洲精品98久久久久久中文字幕| 国产精品久久久久91| 中文字幕一区二区三区电影| 欧美激情国产日韩精品一区18| 97涩涩爰在线观看亚洲| 91精品国产91久久久久久吃药| 在线观看欧美日韩| 成人黄色免费网站在线观看| 欧美日韩成人网| 欧美性生交xxxxx久久久| www.日韩.com| xx视频.9999.com| 国产成人jvid在线播放| 成人国产精品一区| 98精品国产自产在线观看| 91精品国产99久久久久久| 日韩成人在线观看| 成人妇女淫片aaaa视频| 日韩av大片在线| 国产91色在线|免| 久久精品国产欧美亚洲人人爽| 国产精品一二三在线| 色噜噜久久综合伊人一本| 久久99热精品这里久久精品| 91欧美精品午夜性色福利在线| 亚洲精品ady| 国产高清在线不卡| 91精品视频网站| 91久久久精品| 日韩欧亚中文在线| 亚洲日韩欧美视频| 日韩美女av在线免费观看| 国产一区二区三区毛片| 日韩av免费一区| 国产精品久久久91| 日韩激情av在线免费观看| 日韩在线观看视频免费| 96国产粉嫩美女| 久久欧美在线电影| 欧美日韩中文在线| 久久久女人电视剧免费播放下载| 97在线观看视频| 隔壁老王国产在线精品| 久久深夜福利免费观看| 一个人www欧美| 亚洲精品福利视频| 最新的欧美黄色| 欧美理论电影在线观看| 久久久人成影片一区二区三区观看| 精品美女久久久久久免费| 国产精品久久97| 亚洲综合色av| 久久成人精品视频| 一本一本久久a久久精品牛牛影视| 国产精品女主播视频| 日韩在线中文字幕| 国产精品久久久久7777婷婷| 青青草精品毛片| 成人午夜激情网| 欧美亚洲国产日本| 91在线|亚洲| 国产精品久久久久高潮| 国产97免费视| 亚洲成avwww人| 91亚洲人电影| 国产成人精品一区二区在线| 日韩在线国产精品| 992tv成人免费视频| 亚洲国产成人一区| 亚洲欧洲av一区二区| 国产成人97精品免费看片| 久久久久久久久久久网站| 都市激情亚洲色图| 久久九九全国免费精品观看| 最近2019中文字幕一页二页| 蜜月aⅴ免费一区二区三区| 6080yy精品一区二区三区| 伊人精品在线观看| 国产午夜精品视频免费不卡69堂| 国产精品久久久av久久久| 尤物99国产成人精品视频| 精品色蜜蜜精品视频在线观看| 欧美激情综合亚洲一二区| 国产综合在线视频| 日韩极品精品视频免费观看| 日韩av观看网址| 国产精品精品视频一区二区三区| 日韩电视剧在线观看免费网站| 久久久久久国产| 日韩在线视频中文字幕| 国产精品jvid在线观看蜜臀| 成人午夜激情网|