fdggg dfg sddsf fggg sddsf 

ajax之進度顯示
進度顯示在上傳檔案可以應用到, 在javascript內需在setTimeout時再去create一次HTTPRequest範例如下:function createHTTPRequest() { if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest();... http_request = new ActiveXObject("Msxml2.XMLHTTP");...}進入點:function makeRequest(_url) { createHTTPRequest(); this.url = _url; http_request.onreadystatechange = setProgressTimeout; http_request.open('GET', url, true); http_request.send(null);}function setProgressTimeout() { if (http_request.readyState == 4) { if (http_request.status == 200) { setTimeout("setSending()", 2000); } }}function setSending() { createHTTPRequest(); http_request.open("GET", url, true); http_request.onreadystatechange = progressContents; http_request.send(null);}顯示進度:function progressContents() { var oProgress1 = document.all.ajax_progressstart; var oProgress2 = document.all.ajax_progressend; var oProgressnum = document.all.ajax_progressnumber; if (http_request.readyState == 4) { if (http_request.status == 200) { var xmldoc = http_request.responseXML; var root_node = xmldoc.getElementsByTagName(roottag).item(0); var _progress = root_node.firstChild.data; progress = parseInt(_progress); if(progress>=100) { oProgress1.width="100%"; oProgressnum.innerText=progress+"%"; oProgressnum.innerText="100%"; http_request.abort(); } else { oProgress1.width=progress+"%"; oProgress2.width=(100-progress)+"%"; oProgressnum.innerText=progress+"%"; setTimeout("setSending()", 2000); } } else { alert('There was a problem with the request.'+ http_request.statusText); } }}html onclick 觸發makeRequest()後, 先create一次HTTPRequest, 向Server要回資料後觸發setProgressTimeout(), 設定2秒 開始loop去向Server要一次資料, 等要到後觸發顯示現在進度到網頁上progressContents()..結果:

 

好站連結:http://tw.myblog.yahoo.com/miles1962967













arrow
arrow
    全站熱搜
    創作者介紹
    創作者 pybjps 的頭像
    pybjps

    子,这

    pybjps 發表在 痞客邦 留言(0) 人氣()