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

首頁 > 開發 > AJAX > 正文

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

2024-09-01 08:31:11
字體:
來源:轉載
供稿:網友

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

問題:

具體做的是個文件導入的功能,導入的功能是成功了,但是界面一直得不到返回值,排查了一下午,調試的時候是可以有返回的,但是關掉瀏覽器調試界面,卻得不到返回結果。

原因:

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

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

ajax中async這個屬性,用于控制請求數據的方式,默認是true,即默認以異步的方式請求數據。

一、async值為true (異步)

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

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

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

二、async值為false (同步)

當執行當前AJAX的時候會停止執行后面的JS代碼,直到AJAX執行完畢后時,才能繼續執行后面的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(); 

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

Ajax同步與異步的區別

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"); //不緩存Ajaxxmlhttp.send(sendStr); return returnValue;在異步時才可以用xmlHttpReq.onreadystatechange狀態值!下面是異步和同步的不同調用方式:xmlHttpReq.open("GET",url,true);//異步方式 xmlHttpReq.onreadystatechange = showResult; //showResult是回調函數名 xmlHttpReq.send(null);function showResult(){  if(xmlHttpReq.readyState == 4){  if(xmlHttpReq.status == 200){ ****** } }}
xmlHttpReq.open("GET",url,false);//同步方式   xmlHttpReq.send(null);   showResult(); //showResult雖然是回調函數名但是具體用法不一樣~ function showResult(){   //if(xmlHttpReq.readyState == 4){ 這里就不用了,直接dosomething吧~   //if(xmlHttpReq.status == 200){    ******//dosomething   //}   //} }xmlhttp.open("Post",url,true);

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

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

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩视频免费中文字幕| 黄色91在线观看| 欧美精品在线看| 久久久亚洲福利精品午夜| 色99之美女主播在线视频| 在线观看久久av| 亚洲最大的网站| 亚洲福利在线播放| 97婷婷大伊香蕉精品视频| 高清欧美电影在线| 成人免费视频xnxx.com| 亚洲成人网在线| 亚洲自拍偷拍色图| 国产精品观看在线亚洲人成网| 欧美在线视频在线播放完整版免费观看| 国产婷婷97碰碰久久人人蜜臀| 性夜试看影院91社区| 久久久久久97| 2019中文字幕在线免费观看| 欧美高清在线播放| 欧美一区二区影院| 日韩一中文字幕| 一区二区三区久久精品| 国产精品久久久久久久久久免费| 精品视频在线播放免| 免费成人高清视频| 久久久噜噜噜久久中文字免| 亚洲欧美日韩中文视频| 中日韩美女免费视频网址在线观看| 一区二区三区久久精品| 亚洲xxxx做受欧美| 国产91精品久久久久久| 91亚洲va在线va天堂va国| 欧美激情成人在线视频| 激情亚洲一区二区三区四区| 亚洲xxxx妇黄裸体| 亚洲黄页视频免费观看| 亚洲综合精品一区二区| 国产精品久久久久久久久粉嫩av| 欧美激情国产日韩精品一区18| 久久国产精品久久久久久久久久| 免费不卡在线观看av| 成人网页在线免费观看| 久久精品视频导航| 青青草原一区二区| 97在线观看免费| 亚洲视频在线看| 一本色道久久88综合亚洲精品ⅰ| 日韩大片在线观看视频| 久久91精品国产91久久跳| 在线视频免费一区二区| 国产女精品视频网站免费| 成人a在线视频| 久久久久五月天| 日韩电影在线观看永久视频免费网站| 日韩最新免费不卡| 欧美亚洲国产精品| 国产精品偷伦视频免费观看国产| 国产精品白嫩初高中害羞小美女| 国产精品99久久久久久久久久久久| 国产美女扒开尿口久久久| 亚洲精品成人网| 福利一区视频在线观看| 国产精品亚洲一区二区三区| 亚洲在线观看视频网站| 成人欧美一区二区三区在线湿哒哒| 亚洲国产97在线精品一区| 欧美亚洲国产视频| 亚洲丁香婷深爱综合| 97视频免费在线观看| 亚洲午夜未满十八勿入免费观看全集| 国产在线观看一区二区三区| 欧美疯狂做受xxxx高潮| 精品中文字幕视频| 欧美视频国产精品| 亚洲天堂av图片| 精品国内产的精品视频在线观看| 中文字幕九色91在线| 亚洲桃花岛网站| 欧美精品videosex性欧美| 久久理论片午夜琪琪电影网| 亚洲va欧美va国产综合久久| 亚洲第一区第二区| 久久久久久久久久久人体| 精品二区三区线观看| 91精品国产综合久久久久久久久| 日韩中文字幕在线| 日韩欧美中文字幕在线观看| 国产福利精品在线| 亚洲老司机av| 成人免费观看49www在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 欧美高跟鞋交xxxxxhd| 亚洲国语精品自产拍在线观看| 国产精自产拍久久久久久| 日韩欧美精品中文字幕| 91精品国产91久久久久久| 97视频免费在线观看| 日韩av免费在线| 中文字幕精品网| 在线观看国产成人av片| 成人精品福利视频| 成人激情电影一区二区| 日本精品一区二区三区在线播放视频| 夜夜狂射影院欧美极品| 久久99精品久久久久久青青91| 国产精品久久久久9999| 国产福利视频一区| 国产欧美久久一区二区| 欧美日韩高清区| 欧美一区二区大胆人体摄影专业网站| 国产精品69精品一区二区三区| 国产偷国产偷亚洲清高网站| 欧美激情性做爰免费视频| 国产精品男人爽免费视频1| 久久理论片午夜琪琪电影网| 青青青国产精品一区二区| 欧美一区二区三区图| 欧美大全免费观看电视剧大泉洋| 91成人精品网站| 国产亚洲欧洲高清一区| 九九九久久久久久| 成人精品视频在线| 国产精品久久久久久久午夜| 国语自产精品视频在线看一大j8| 亚洲一区二区久久久久久久| 在线中文字幕日韩| 成人啪啪免费看| 欧美人在线观看| 亚洲影院高清在线| 韩国v欧美v日本v亚洲| 一本大道久久加勒比香蕉| 欧美性极品少妇精品网站| 久久免费精品日本久久中文字幕| 日韩女优人人人人射在线视频| 亚洲一区二区精品| 欧美一区二区影院| 国产成人亚洲综合| 国外成人免费在线播放| 成人天堂噜噜噜| 国产成人高潮免费观看精品| 欧美一区二区三区……| 欧美性感美女h网站在线观看免费| 日韩成人av一区| 日韩精品视频在线免费观看| 亚洲精品一区在线观看香蕉| 日韩视频免费在线| 国产成人免费av| 国产一区二区欧美日韩| 久久精品色欧美aⅴ一区二区| 日本高清久久天堂| 欧美二区在线播放| 欧美疯狂做受xxxx高潮| 亚洲第一视频网站| 国产欧亚日韩视频| 久久久国产一区二区三区| 这里只有视频精品| 亚洲影院在线看| 国产视频在线观看一区二区| 国产亚洲精品久久久久久牛牛| 欧美理论在线观看| 亚洲国产精品热久久| 国产精品成久久久久三级| 国产一区二区美女视频|