欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 讓ajax更加友好的實現方法(實時顯示后臺處理進度。)

讓ajax更加友好的實現方法(實時顯示后臺處理進度。)

熱門標簽:辦理一個400電話多少錢 廣西ai語音電銷機器人哪家好 察縣地圖標注 如何用地圖標注各分公司 電銷機器人適用范圍 蓄意標記地圖標注 莆田防封電銷卡價格 信貸電銷機器人有用嗎 接聽電話機器人哪有
ajax應用越來越多,大部分ajax處理都是在前臺顯示1個"loading...",然后把數據提交給服務器進行處理,處理完畢后顯示"處理完畢"。我們能否讓ajax更加友好點,實時顯示服務器處理的進度了?這在一些長時間的請求中尤其重要,比如上傳文件、發送郵件、批量處理數據。答案當然是可以的,不然就不會寫這個了,對吧,^_^。

存在的問題:
要解決實現上面的功能,需要解決下面幾個問題:

1. 服務器如何在處理一部分數據后傳遞部分response到瀏覽器。
2、瀏覽器如何能處理服務器傳遞過來部分數據,并保持http連接直到處理完全完畢。

要解決第1個問題,使用flush讓response分塊進行呈現就可以了,具體請參考我另一遍隨筆"flush讓頁面分塊,逐步呈現";
第2個問題,則需要用到XMLHttpRequest的readyState狀態,w3c對 readyState 定義如下幾個值:
UNSENT = 0; // 沒有發送請求
OPENED = 1; // 已經打開http連接
HEADERS_RECEIVED = 2; // 接收到response header
LOADING = 3; // 真正接收response body
DONE = 4; // 請求接收完畢
相信狀態4大家是天天在用,而我們這里需要用到就是狀態3。
實例:
廢話少說,代碼實例比什么文字解釋都管用。我們這里假設服務器的1個處理需要6秒種,每秒種處理1條記錄,總共處理6條記錄,我們需要服務器每處理完1條數據,客戶端則顯示處理進度(包括文字和進度條)。
服務器端代碼(下面JSP代碼):
復制代碼 代碼如下:

%
// 下面設置Content-Type:application/x-javascript 是為了適應Webkit的瀏覽器(chrome,safari)
response.setHeader("Content-Type","application/x-javascript");
int count = 6; // 處理6條數據
for(int i=0;icount;i++){
// 處理完畢一條,輸出結果到客戶端
out.println(i+1);
out.flush();
// 這里假設每條數據處理時間為1秒
Thread.currentThread().sleep(1000);
}
%>

html代碼:
復制代碼 代碼如下:

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
html xmlns="http://www.w3.org/1999/xhtml">
head>
style>
#divProgress{width:300px;height:24px;position:relative;}
#divProgress div{position:absolute;left:0;top:0;height:24px;}
#progressBg{background-color:#B9F8F9;z-index:10;}
#progressText{z-index:15;text-align:center;width:100%;}
/style>
/head>
body>
div id="divProgress">
div id="progressBg">/div>
div id="progressText">/div>
/div>
br />
button onclick="send()">提交數據/button>
script>
var t = document.getElementById("progressText");
var bg = document.getElementById("progressBg");
function send(){
t.innerHTML = "loading...";
bg.style.width = "0px";
var xhr = new window.XMLHttpRequest();
if(!window.XMLHttpRequest){
try {
xhr = new window.ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {}
}
xhr.open("post","http://localhost:801/ChunkTest/chunk.jsp?count=6");
var oldSize=0;
xhr.onreadystatechange = function(){
if(xhr.readyState > 2){
var tmpText = xhr.responseText.substring(oldSize);
oldSize = xhr.responseText.length;
if(tmpText.length > 0 ){
// 設置文本
t.innerHTML = tmpText + "/6";
// 設置進度條
var width = parseInt(tmpText)/6*300;
bg.style.width = width+"px";
}
}
if(xhr.readyState == 4){
// 請求執行完畢
t.innerHTML = "執行完畢";
bg.style.width = "300px";
}
}
xhr.send(null);
}
/script>
/body>
/html>

運行效果圖: 



缺點:

看到這里或許你已經蠢蠢欲動,想自己動手試試了。但是注意上面的方法雖好,但也有個缺點,就是瀏覽器的支持問題。目前IE所有版本的瀏覽器都不支持 xhr.readyState == 3狀態,IE瀏覽器不支持在response響應完畢前讀取responseText屬性。 具體可查看MSDN : XMLHttpRequest Object

基于Webkit的瀏覽器支持的不是很好,需要設置Content-Type:application/x-javascript才行(經測試發現Content-Type:text/html在有些情況下正常,有些情況下又不正常,而用application/x-javascript都正常)。

看到了缺點后是否又打擊了你的積極性了,其實針對IE,我們不需要做太多處理,IE不支持,就不會顯示進度,就變成跟傳統的ajax請求一樣,一直顯示1個loading直到請求完畢。我們只需要加1個簡單的判斷,判斷如果是ie則不執行xhr.readyState > 2中的代碼,如果不加判斷,IE下會報JS錯誤.

DEMO:

demo服務器不太好,而且在國外,隨時可能會點擊不了,而且有時候運行效果不是很好,大家知曉下,最好是把代碼copy到本地進行測試.
請使用firefox或chrome查看demo,ie查看的效果跟一般的ajax沒什么不一樣.
http://213.186.44.204:8080/ChunkTest/index.html  
轉載請注明出處:http://www.cnblogs.com/BearsTaR/。 禁止商用!
您可能感興趣的文章:
  • AJAX和JSP實現的基于WEB的文件上傳的進度控制代碼
  • AJAX 進度條實現代碼
  • ajax+php打造進度條 readyState各狀態
  • ajax+php打造進度條代碼[readyState各狀態說明]
  • ajax提交加載進度條示例代碼
  • 一個簡單的ajax上傳進度顯示示例
  • php+ajax實現帶進度條的大數據排隊導出思路以及源碼
  • jquery+php+ajax顯示上傳進度的多圖片上傳并生成縮略圖代碼
  • jsp+ajax發送GET請求的方法
  • jquery+ajax實現跨域請求的方法
  • asp.net+ajax的Post請求實例
  • 服務端配置實現AJAX跨域請求
  • 解決ajax跨域請求數據cookie丟失問題
  • django通過ajax發起請求返回JSON格式數據的方法
  • Ajax在請求過程中顯示進度的簡單實現

標簽:阿拉善盟 儋州 鷹潭 益陽 延邊 平涼 張掖 銅陵

巨人網絡通訊聲明:本文標題《讓ajax更加友好的實現方法(實時顯示后臺處理進度。)》,本文關鍵詞  讓,ajax,更加,友,好的,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《讓ajax更加友好的實現方法(實時顯示后臺處理進度。)》相關的同類信息!
  • 本頁收集關于讓ajax更加友好的實現方法(實時顯示后臺處理進度。)的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    欧美婷婷六月丁香综合色| 一区二区三区四区视频精品免费| 日韩精品一区第一页| 蜜桃视频无码区在线观看| 色狠狠色噜噜噜综合网| 中文字幕一区二区不卡| 成人h动漫精品一区二| 欧美一区免费观看| 中文字幕乱码一区二区免费| 国产一区二区在线视频| 黄色免费一级视频| 久久久久久久久久久久电影| 国内精品久久久久影院一蜜桃| 国产精品久久免费观看| 国产欧美视频一区二区三区| 国产乱码精品一品二品| www.97视频| 自拍偷拍欧美激情| 在线播放国产视频| 337p亚洲精品色噜噜狠狠| 日韩激情av在线| 在线不卡av电影| 久久女同性恋中文字幕| 国产老女人精品毛片久久| 蜜桃av.com| 综合久久久久综合| 深夜视频在线观看| 日韩视频一区二区在线观看| 美女一区二区在线观看| 欧美精品日韩在线| 国产精品久久久久久久久免费相片| 成a人片国产精品| 欧美性视频一区二区三区| 午夜av区久久| av网站免费在线看| 国产精品私人影院| 韩国三级丰满少妇高潮| 日韩欧美一区电影| 国产精品白丝jk黑袜喷水| 国产十六处破外女视频| 亚洲一二三区在线观看| 黄色工厂在线观看| 国产日韩成人精品| aaa欧美大片| 日韩一区二区三区高清免费看看| 激情六月婷婷久久| www青青草原| 亚洲h精品动漫在线观看| 久久久久亚洲av成人无码电影| 欧美激情综合在线| 中文字幕1区2区| 精品国产91久久久久久久妲己| 国产成人午夜精品影院观看视频 | 欧美日韩久久一区| 日本不卡的三区四区五区| 亚洲精品天堂网| 亚洲影院理伦片| av中文字幕免费观看| 国产精品国产三级国产普通话99| 丰满少妇xbxb毛片日本| 国产偷国产偷精品高清尤物| 性色av浪潮av| 久久久亚洲午夜电影| 无码人妻一区二区三区在线视频| 日韩一区二区精品| 不卡一二三区首页| 日韩欧美在线123| 不卡电影一区二区三区| 欧美成人精精品一区二区频| 成人av午夜电影| 日韩精品专区在线| 91麻豆自制传媒国产之光| 久久先锋影音av鲁色资源网| 欧美日韩一区二区区| 久久九九全国免费| 色哟哟视频在线| 国产精品激情偷乱一区二区∴| 波多野结衣影院| 亚洲精品免费看| 亚洲欧美日韩第一页| 首页欧美精品中文字幕| 18岁成人毛片| 狠狠色狠狠色综合日日91app| 色天天综合久久久久综合片| 久久福利视频一区二区| 欧美在线制服丝袜| 国产91精品在线观看| 精品女同一区二区| 第一页在线视频| 椎名由奈av一区二区三区| 男人的天堂av网| 日韩精品成人一区二区三区| 91久久一区二区| 国产精品18久久久久久久久| 日韩三级伦理片妻子的秘密按摩| 日本r级电影在线观看| 欧美国产精品久久| 88久久精品无码一区二区毛片| 亚洲一级二级三级在线免费观看| 无码人妻精品一区二区三区夜夜嗨| 久久精品理论片| 91精品国产美女浴室洗澡无遮挡| 99久久er热在这里只有精品15| 日本一区二区在线不卡| 久久亚洲无码视频| 免费成人你懂的| 欧美一区二区三区四区久久| 极品人妻一区二区| 伊人开心综合网| 一本大道久久a久久精品综合| 国产麻豆91精品| 久久久欧美精品sm网站| 国产精品亚洲无码| 日韩精品亚洲专区| 7777精品伊人久久久大香线蕉经典版下载 | 日韩在线播放一区二区| 欧美日韩国产a| 亚洲国产欧美日韩在线| 亚洲婷婷在线视频| 91嫩草丨国产丨精品| 国产河南妇女毛片精品久久久| 久久精品男人天堂av| 国产人妻大战黑人20p| 蜜桃91丨九色丨蝌蚪91桃色| 日韩片之四级片| 丝袜美腿中文字幕| 久久国产精品露脸对白| 26uuu欧美| 成人黄色免费网址| 国内一区二区在线| 中文字幕乱码一区二区免费| 欧美美女性生活视频| 高清在线成人网| 中文字幕在线观看一区| 色婷婷综合视频在线观看| caoporn国产精品| 亚洲免费观看高清完整版在线观看| 色屁屁一区二区| 91麻豆国产在线观看| 亚洲图片欧美色图| 这里只有精品99re| 日韩一区二区a片免费观看| 国产揄拍国内精品对白| 中文字幕精品一区二区精品绿巨人 | 国产精品色呦呦| 一本色道综合亚洲| xxxx国产视频| 日韩精品三区四区| 欧美精品一区二区三区蜜臀| 四虎地址8848| 9i看片成人免费高清| 亚洲一卡二卡三卡四卡无卡久久| 在线播放91灌醉迷j高跟美女 | 黄色成人免费在线| 国产精品久久久久久久久久免费看 | 我家有个日本女人| 久久久久亚洲av片无码v| 午夜精品一区二区三区电影天堂 | 国产精品麻豆欧美日韩ww| 色美美综合视频| 日本在线不卡一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久久久久久久久久久久久久99| 国产高潮流白浆| 精品国产aⅴ一区二区三区东京热| 日韩极品在线观看| 亚洲国产成人自拍| 欧美日韩精品欧美日韩精品 | 一区二区三区成人在线视频 | 免费看三级黄色片| 免费在线观看一区二区三区| 国产性天天综合网| 欧美无砖砖区免费| 18禁裸乳无遮挡啪啪无码免费| 国产乱码精品一区二区三| 玉米视频成人免费看| 日韩久久久久久| 黑鬼狂亚洲人videos| 日本三级日本三级日本三级极| 精品在线免费视频| 亚洲卡通欧美制服中文| 欧美一区二区三区免费视频| 日韩免费av一区| 日本一区二区在线观看视频| 久久国产精品99精品国产| 1024成人网| 日韩一区二区免费电影| 精品无码久久久久成人漫画| 亚洲中文字幕无码av| 不卡av电影在线播放| 日本vs亚洲vs韩国一区三区二区| 国产精品你懂的在线| 日韩欧美国产综合| 在线视频综合导航| 夫妇露脸对白88av| xxxx国产视频| 国产成人免费视| 免费精品视频在线| 亚洲精品视频在线看| 国产婷婷一区二区|