Ajax同步和異步問(wèn)題淺析及解決方法
通過(guò)ajax向后臺(tái)發(fā)送和接收數(shù)據(jù)時(shí),常常會(huì)出現(xiàn)同步異步問(wèn)題。由于ajax是默認(rèn)異步加載的,但有時(shí)候需要同步或者同步的效果,有以下兩種解決方案。
方案一:將某些方法放在回調(diào)函數(shù)中執(zhí)行,即,等到從后臺(tái)返回成功后再執(zhí)行。
例:
$.getJSON("/data-access/sens-config/IPandPortSel",{},function(resp){
if(resp.code==0){
$.each(resp.data,function(i,obj){
option_net_type += addOption(obj);
});
$("#edit-addr_id").append(option_net_type);
addr_idOld = $('#edit-addr_id').val(addr_id);
}
});
紅色的部分必須在數(shù)據(jù)返回成功后執(zhí)行,如果放在if(resp.code==0){}外面((但放在$.getJSON();后面)會(huì)存在數(shù)據(jù)還沒(méi)從后臺(tái)返回,就已經(jīng)執(zhí)行到紅色部分代碼了。
方法二:利用標(biāo)準(zhǔn)ajax傳遞方式
$.ajax({
type : "post",
url : "/data-access/manufacturer/deleteBranch",
data : data,
async : false,//取消異步
success : function(resp){
if(resp.code==0){
if(ids.length>=currentListNum&¤tPage!=1){
currentPage = currentPage - 1;
}
var para = {
mypara :currentPage,
startPage : currentPage,
};
$('div.page-box').data('myPage').setOptions({data: para});
}
}
});
注意:這種方式只是局部的同步傳輸方式,不會(huì)對(duì)其他傳輸造成影響,是比較安全和推薦的一種
方式。
還存在另外一種方式:
// $.ajaxSettings.async = false;
// $.getJSON("/data-access/ip-config/deleteBranch",data,function(resp){
// if(resp.code==0){
// if(ids.length>=currentListNum&¤tPage!=1){
// currentPage = currentPage - 1;
// }
// var para = {
// mypara :currentPage,
// startPage : currentPage,
// };
// $('div.page-box').data('myPage').setOptions({data: para});
// }
// });
// $.ajaxSettings.async = true;
這種方式是全局的,不是很推薦使用,因?yàn)闀?huì)對(duì)其他ajax傳輸造成影響。
以上所述是小編給大家介紹的Ajax同步和異步問(wèn)題淺析,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!
相關(guān)文章
Ajax請(qǐng)求響應(yīng)中用window.open打開(kāi)新窗口被攔截的解決方法
ajax 異步請(qǐng)求成功后需要新開(kāi)窗口打開(kāi) url,使用的是 window.open() 方法,但是會(huì)被瀏覽器給攔截,怎么解決呢,下面小編給大家解答下2016-08-08
Jquery $.ajax函數(shù)外的一段代碼的執(zhí)行順序
調(diào)用了JQuery的異步函數(shù)$.ajax ,然后在$.ajax函數(shù)外之后又有一段Jquery 代碼。每次都是在$.ajax之后的代碼先執(zhí)行2014-06-06
Ajax對(duì)xml信息的接收和處理操作實(shí)例分析
這篇文章主要介紹了Ajax對(duì)xml信息的接收和處理操作,結(jié)合實(shí)例形式分析了ajax針對(duì)xml結(jié)構(gòu)信息的相關(guān)處理操作技巧,需要的朋友可以參考下2019-07-07
ajax請(qǐng)求添加自定義header參數(shù)代碼
這篇文章主要介紹了ajax請(qǐng)求添加自定義header參數(shù)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
ajax的get請(qǐng)求時(shí)緩存處理解決方法
這篇文章主要介紹了ajax的get請(qǐng)求時(shí)緩存處理解決方法,詳細(xì)分析了常見(jiàn)的四種解決方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-02-02
基于Spring Boot利用 ajax實(shí)現(xiàn)上傳圖片功能
這篇文章主要介紹了Spring Boot利用 ajax實(shí)現(xiàn)上傳圖片功能,本文圖文實(shí)例相結(jié)合,給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11

