js中同步與異步處理的方法和區(qū)別總結(jié)
更新時(shí)間:2013年12月25日 16:31:40 作者:
若要在使用ajax請(qǐng)求后處理發(fā)送請(qǐng)求返回的結(jié)果,最好使用同步請(qǐng)求,下面為大家介紹下js中同步與異步處理的方法和區(qū)別,感興趣的朋友不要錯(cuò)過(guò)
在使用異步請(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)文章
JS實(shí)現(xiàn)為表格動(dòng)態(tài)添加標(biāo)題的方法
這篇文章主要介紹了JS實(shí)現(xiàn)為表格動(dòng)態(tài)添加標(biāo)題的方法,涉及javascript中createCaption方法添加標(biāo)題的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03微信小程序圖標(biāo)的角標(biāo)實(shí)現(xiàn)代碼
文章介紹微信小程序中實(shí)現(xiàn)圖標(biāo)角標(biāo)和可拖動(dòng)懸浮圖標(biāo)的方法,通過(guò)view控件定位樣式,提供WXML/WXSS代碼示例,感興趣的朋友跟隨小編一起看看吧2025-06-06js+CSS實(shí)現(xiàn)模擬華麗的select控件下拉菜單效果
這篇文章主要介紹了js+CSS模擬select控件下拉菜單效果,通過(guò)javascript鼠標(biāo)事件結(jié)合css控制實(shí)現(xiàn)select下拉菜單效果,整體效果華麗美觀,需要的朋友可以參考下2015-09-09JavaScript逆向分析instagram登入過(guò)程
這篇文章主要介紹了JavaScript逆向分析instagram登入過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07js實(shí)現(xiàn)兼容PC端和移動(dòng)端滑塊拖動(dòng)選擇數(shù)字效果
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)兼容PC端和移動(dòng)端滑塊拖動(dòng)選擇數(shù)字的效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02javascript實(shí)現(xiàn)多邊形碰撞檢測(cè)
這篇文章主要介紹了javascript如何實(shí)現(xiàn)多邊形碰撞檢測(cè),幫助大家更好的理解和使用js,感興趣的朋友可以了解下2020-10-10JavaScript+html5 canvas繪制的圓弧蕩秋千效果完整實(shí)例
這篇文章主要介紹了JavaScript+html5 canvas繪制的圓弧蕩秋千效果,以完整實(shí)例形式分析了JavaScript集合html5的canvas繪制圖形的相關(guān)技巧,需要的朋友可以參考下2016-01-01javascript之通用簡(jiǎn)單的table選項(xiàng)卡實(shí)現(xiàn)(二)
上篇中的選項(xiàng)卡存在這樣的問(wèn)題:把邏輯封裝在table.js中,不夠靈活,也就是說(shuō)如果某個(gè)選項(xiàng)卡是實(shí)現(xiàn)異步請(qǐng)求或者跳轉(zhuǎn),而非div的顯隱切換,那么就得修過(guò)table.js來(lái)達(dá)到目的,顯然不是我所需要的。2010-05-05