成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

解決ajax請求后臺,有時收不到返回值的問題

瀏覽:877日期:2022-06-11 13:44:51

昨天下午做項目遇到一個問題,貼出來方便以后翻閱,也給大家個參考。

問題:

具體做的是個文件導(dǎo)入的功能,導(dǎo)入的功能是成功了,但是界面一直得不到返回值,排查了一下午,調(diào)試的時候是可以有返回的,但是關(guān)掉瀏覽器調(diào)試界面,卻得不到返回結(jié)果。

原因:

一直以為是我后臺程序有問題,晚上回到家才想起來ajax的問題,把ajax的異步處理改為同步,就出來效果了,具體的原因請看下文詳解。

jquery中ajax方法有個屬性async用于控制同步和異步,默認(rèn)是true,即ajax請求默認(rèn)是異步請求,有時項目中會用到AJAX同步。這個同步的意思是當(dāng)JS代碼加載到當(dāng)前AJAX的時候會把頁面里所有的代碼停止加載,頁面出現(xiàn)假死狀態(tài),當(dāng)這個AJAX執(zhí)行完畢后才會繼續(xù)運行其他代碼頁面假死狀態(tài)解除。而異步則這個AJAX代碼運行中的時候其他代碼一樣可以運行。

ajax中async這個屬性,用于控制請求數(shù)據(jù)的方式,默認(rèn)是true,即默認(rèn)以異步的方式請求數(shù)據(jù)。

一、async值為true (異步)

當(dāng)ajax發(fā)送請求后,在等待server端返回的這個過程中,前臺會繼續(xù) 執(zhí)行ajax塊后面的腳本,直到server端返回正確的結(jié)果才會去執(zhí)行success,也就是說這時候執(zhí)行的是兩個線程,ajax塊發(fā)出請求后一個線程 和ajax塊后面的腳本(另一個線程)

$.ajax({ 
  type:"POST", 
  url:"Venue.aspx?act=init", 
  dataType:"html", 
  success:function(result){ //function1()
  f1(); 
  f2(); 
 } 
  failure:function (result) { 
  alert("Failed"); 
  }, 
 } 
 function2();

在上例中,當(dāng)ajax塊發(fā)出請求后,他將停留function1(),等待server端的返回,但同時(在這個等待過程中),前臺會去執(zhí)行function2()。

二、async值為false (同步)

當(dāng)執(zhí)行當(dāng)前AJAX的時候會停止執(zhí)行后面的JS代碼,直到AJAX執(zhí)行完畢后時,才能繼續(xù)執(zhí)行后面的JS代碼。

$.ajax({ 
  type:"POST", 
  url:"Venue.aspx?act=init", 
  dataType:"html", 
  async: false,
 success:function(result){ //function1()
  f1(); 
  f2(); 
  } 
 failure:function (result) { 
  alert("Failed"); 
  }, 
 } 
 function2(); 

當(dāng)把asyn設(shè)為false時,這時ajax的請求時同步的,也就是說,這個時候ajax塊發(fā)出請求后,他會等待在function1()這個地方,不會去執(zhí)行function2(),直到function1()部分執(zhí)行完畢。

Ajax同步與異步的區(qū)別

var returnValue = null; 
xmlhttp = createXmlHttp(); 
xmlhttp.onreadystatechange = function() { 
 if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
 if (xmlhttp.responseText == "true") { 
  returnValue = "true"; 
 } 
 else { 
  returnValue = "false"; 
 } 
 } 
}; 
xmlhttp.open("Post",url,true); //異步傳輸 
xmlhttp.setRequestHeader("If-Modified-Since","0"); //不緩存Ajax
xmlhttp.send(sendStr); 
return returnValue;
在異步時才可以用xmlHttpReq.onreadystatechange狀態(tài)值!下面是異步和同步的不同調(diào)用方式:

xmlHttpReq.open("GET",url,true);//異步方式
 xmlHttpReq.onreadystatechange = showResult; //showResult是回調(diào)函數(shù)名
 xmlHttpReq.send(null);
function showResult(){ 
 if(xmlHttpReq.readyState == 4){ 
 if(xmlHttpReq.status == 200){
 ******
 }
 }
}
xmlHttpReq.open("GET",url,false);//同步方式 
  xmlHttpReq.send(null); 
  showResult(); //showResult雖然是回調(diào)函數(shù)名但是具體用法不一樣~ 
function showResult(){ 
  //if(xmlHttpReq.readyState == 4){ 這里就不用了,直接dosomething吧~ 
  //if(xmlHttpReq.status == 200){ 
   ******//dosomething 
  //} 
  //} 
}
xmlhttp.open("Post",url,true);

如果是同步(false),返回值是true或false,因為執(zhí)行完send后,開始執(zhí)行onreadystatechange,程序會等到onreadystatechange都執(zhí)行完,取得responseText后才會繼續(xù)執(zhí)行下一條語句,所以returnValue一定有值。

如果是異步(true),返回值一定是null,因為程序執(zhí)行完send后不等xmlhttp的響應(yīng),而繼續(xù)執(zhí)行下一條語句,所以returnValue還沒有來的及變化就已經(jīng)返回null了。

所有如果想獲得xmlhttp返回值必須用同步,異步無法得到返回值。

同步異步使用xmlhttp池時都要注意:取得xmlhttp時只能新建xmlhttp,不能從池中取出已用過的xmlhttp,因為被使用過的xmlhttp的readyState為4,所以同步異步都會send但不執(zhí)行onreadystatechange。

以上這篇解決ajax請求后臺,有時收不到返回值的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持。

標(biāo)簽: Ajax
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
95精品视频在线| 99久久伊人网影院| 国产综合激情| 91.com在线观看| 久久av资源网| 欧美亚日韩国产aⅴ精品中极品| 亚洲国产精品影院| 国产欧美一区二区三区另类精品| 亚洲国产精品精华液ab| 91一区一区三区| 久久无码av三级| 91无套直看片红桃| 久久免费视频色| 国产·精品毛片| 日韩三级免费观看| 成人精品免费网站| 精品日韩av一区二区| 99久久婷婷国产| 国产日韩在线不卡| 黑人一区二区| 亚洲视频免费看| 亚洲精品一级| 亚洲精品久久7777| 亚洲国产电影| 亚洲最新在线观看| 久久先锋影音av| 99精品黄色片免费大全| 精品少妇一区二区三区| 欧美日韩一区精品| 免费亚洲一区二区| 国产日韩精品视频一区二区三区| 欧美视频久久| 91免费观看视频在线| 国产成人亚洲综合色影视| 国产精品久久久久一区| 一区二区自拍| 欧美特黄a级高清免费大片a级| www.66久久| 国产成人免费在线观看不卡| 日韩av电影天堂| 免费日韩av片| 1024成人| 亚洲一区区二区| 国产女主播一区二区| 国产欧美日韩亚洲| 国产亚洲激情| 亚洲女人av| 久久国产欧美| 久久久亚洲一区| 1区2区3区精品视频| 日韩午夜精品| 国产精品一区免费视频| 国产91丝袜在线播放| 国产91精品精华液一区二区三区| 成人性生交大合| 欧美日韩一区二区三区四区在线观看| 久久亚洲一区二区三区明星换脸| 欧美日韩免费电影| 一本色道久久综合亚洲aⅴ蜜桃| 91福利国产精品| 日韩三级.com| 国产午夜精品一区二区 | 精品国产不卡一区二区三区| 欧美日韩免费| 亚洲va天堂va国产va久| 欧美一区二区三区啪啪| 红桃视频欧美| 久久精品国产久精国产爱| 久久亚洲捆绑美女| 午夜一级久久| 成人黄色片在线观看| 日韩欧美精品在线视频| 亚洲欧洲精品一区二区| 性色一区二区| 狠狠色伊人亚洲综合成人| 国产色产综合产在线视频| 国产乱人伦精品一区二区| 国产专区欧美精品| 欧美国产综合色视频| 色婷婷久久99综合精品jk白丝| 不卡av免费在线观看| 亚洲精品免费一二三区| 911精品国产一区二区在线| 欧美精品一线| 免费一级欧美片在线观看| 精品处破学生在线二十三| 国产精品亚洲不卡a| 国产在线国偷精品产拍免费yy| 中文子幕无线码一区tr| 一本大道久久a久久精品综合| 99这里只有精品| 日韩二区三区四区| 国产精品―色哟哟| 欧美精品久久一区| 一区二区三区欧美成人| 懂色av一区二区三区免费观看| 亚洲激情av在线| 日韩欧美一区二区三区在线| 国产精品乱码一区二区三区| 成人激情免费网站| 婷婷成人综合网| 国产日产欧美一区| 91精品福利视频| 黄色在线成人| 成人午夜私人影院| 日韩精品亚洲一区| 国产精品国产三级国产aⅴ中文 | 欧美日韩国产bt| 欧美日韩一区视频| 有坂深雪av一区二区精品| 99re热视频精品| 欧美一区二区三区啪啪| 捆绑紧缚一区二区三区视频| 久久aⅴ乱码一区二区三区| 黑人一区二区| 欧美精品一二三| 夜夜爽99久久国产综合精品女不卡| 国产九色精品成人porny| 一区二区三区在线视频观看| 欧美成va人片在线观看| 色欧美片视频在线观看在线视频| 欧美激情自拍| 国产伦精品一区二区三区免费迷| 亚洲综合激情小说| 久久久精品免费网站| 欧美乱熟臀69xxxxxx| 一区二区三区欧美成人| 欧美在线亚洲综合一区| 国产美女一区二区| 亚洲高清免费观看| 国产精品欧美综合在线| 精品久久久久久久久久久久久久久 | 欧美亚洲不卡| 国产91精品在线观看| 青青草91视频| 亚洲国产人成综合网站| 亚洲私人黄色宅男| 国产丝袜美腿一区二区三区| 欧美一区二区播放| 色呦呦国产精品| 一本久道久久久| 国产精品大片免费观看| k8久久久一区二区三区| 国产制服丝袜一区| 秋霞午夜鲁丝一区二区老狼| 亚洲一区二区三区四区在线观看 | 成人国产精品免费观看| 国内精品伊人久久久久av一坑 | 91免费观看国产| 成人国产精品视频| 国产美女在线精品| 九九视频精品免费| 麻豆精品一区二区综合av| 亚洲尤物在线视频观看| 亚洲同性gay激情无套| 中文成人av在线| 国产日韩欧美a| 久久精品综合网| 国产日韩av一区| 欧美国产精品一区二区三区| 国产亚洲精品中文字幕| 久久精品日产第一区二区三区高清版| 欧美v亚洲v综合ⅴ国产v| 日韩欧美一区二区在线视频| 欧美一卡在线观看| 91精品国产欧美一区二区| 欧美高清一级片在线| 欧美理论片在线| 777午夜精品视频在线播放| 欧美日本韩国一区| 欧美精品久久久久久久多人混战 | 3atv在线一区二区三区| 欧洲生活片亚洲生活在线观看| 久久精品午夜| 久久黄色网页| 色视频一区二区| 欧洲在线/亚洲| 欧美日韩国产小视频| 欧美片在线播放| 欧美一区午夜视频在线观看| 91精品在线观看入口| 91精品国产综合久久久久| 欧美一区二区三区在线电影| 欧美一级爆毛片| 精品免费视频.| 国产午夜精品一区二区| 国产精品久久久久婷婷| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品麻豆一区二区| 亚洲同性同志一二三专区| 亚洲精选视频免费看| 亚洲成人tv网| 裸体健美xxxx欧美裸体表演| 久久福利资源站| 福利电影一区二区| 欧美在线影院| 99av国产精品欲麻豆| 香蕉成人久久| 欧美性大战久久久久久久蜜臀| 51精品国自产在线|