js中同步與異步處理的方法和區(qū)別總結(jié)
更新時(shí)間:2013年12月25日 16:31:40 作者:
若要在使用ajax請(qǐng)求后處理發(fā)送請(qǐng)求返回的結(jié)果,最好使用同步請(qǐng)求,下面為大家介紹下js中同步與異步處理的方法和區(qū)別,感興趣的朋友不要錯(cuò)過
在使用異步請(qǐng)求時(shí),有時(shí)需要將異步請(qǐng)求的結(jié)果返回給另一個(gè)js函數(shù),此種情況下會(huì)出現(xiàn)未等異步請(qǐng)求返回請(qǐng)求結(jié)果,該發(fā)送請(qǐng)求所在js函數(shù)已經(jīng)執(zhí)行完后續(xù)操作,即已經(jīng)執(zhí)行return ,這樣會(huì)導(dǎo)致return的結(jié)果為空字符。
總結(jié):若要在使用ajax請(qǐng)求后處理發(fā)送請(qǐng)求返回的結(jié)果,最好使用同步請(qǐng)求。
例如:以下例子會(huì)出現(xiàn)返回結(jié)果不正確的情況,因?yàn)閍jax異步請(qǐng)求還未執(zhí)行完,函數(shù)已經(jīng)執(zhí)行return了,
function fn(){
var result = " ";
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : true,
type : "POST",
success : function (data){
do something....
result = ....
}
// 對(duì)ajax中返回的data進(jìn)行處理 ,也會(huì)出錯(cuò)
return result ;
}
1 異步請(qǐng)求方式:
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : true,
type : "POST",
dataType : 'json/xml/html',
success : function (result){
do something....
}
});
2 同步請(qǐng)求方式
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : false,
type : "POST",
dataType : 'json/xml/html',
success : function (result){
do something....
}
});
總結(jié):若要在使用ajax請(qǐng)求后處理發(fā)送請(qǐng)求返回的結(jié)果,最好使用同步請(qǐng)求。
例如:以下例子會(huì)出現(xiàn)返回結(jié)果不正確的情況,因?yàn)閍jax異步請(qǐng)求還未執(zhí)行完,函數(shù)已經(jīng)執(zhí)行return了,
復(fù)制代碼 代碼如下:
function fn(){
var result = " ";
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : true,
type : "POST",
success : function (data){
do something....
result = ....
}
// 對(duì)ajax中返回的data進(jìn)行處理 ,也會(huì)出錯(cuò)
return result ;
}
1 異步請(qǐng)求方式:
復(fù)制代碼 代碼如下:
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : true,
type : "POST",
dataType : 'json/xml/html',
success : function (result){
do something....
}
});
2 同步請(qǐng)求方式
復(fù)制代碼 代碼如下:
$.ajax({
url : 'your url',
data:{name:value},
cache : false,
async : false,
type : "POST",
dataType : 'json/xml/html',
success : function (result){
do something....
}
});
相關(guān)文章
JavaScript判斷對(duì)象和數(shù)組的兩種方法
這篇文章主要介紹了JavaScript判斷對(duì)象和數(shù)組的兩種方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05Javascript 是你的高階函數(shù)(高級(jí)應(yīng)用)
這篇文章主要介紹了Javascript 是你的高階函數(shù) ,需要的朋友可以參考下2015-06-06簡(jiǎn)單了解微信小程序的目錄結(jié)構(gòu)
這篇文章主要介紹了簡(jiǎn)單了解小程序的目錄結(jié)構(gòu),在開發(fā)小程序之前,我們首先需要對(duì)其目錄結(jié)構(gòu)進(jìn)行了解,以便于提升開發(fā)效率,需要的朋友可以參考下2019-07-07用js+iframe形成頁面的一種遮罩效果的具體實(shí)現(xiàn)
用js形成頁面的一種遮罩效果,選擇想要進(jìn)行遮罩的窗口,在這里想要遮罩的是一個(gè)iframe窗口,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參參考下2013-12-12Javascript封裝DOMContentLoaded事件實(shí)例
這篇文章主要介紹了Javascript封裝DOMContentLoaded事件實(shí)例,DOMContentLoaded是FF,Opera 9的特有的Event, 當(dāng)所有DOM解析完以后會(huì)觸發(fā)這個(gè)事件,需要的朋友可以參考下2014-06-06javascript 獲取頁面的高度及滾動(dòng)條的位置的代碼
javascript獲取頁面的高度及滾動(dòng)條的位置的代碼,需要的朋友可以參考下。2010-05-05