Ajax同步與非同步的區別
在使用ajax請求數據的時候,通常情況下我們都是把“`async:true “`當做默認來處理,讓我們的請求成為一個非同步的請求。但是在某種情況下我們是需要吧“`async:false“`設置為false的,方便我們進行觀察數據的走向、去處。那**同步和非同步**有什麼區別呢?
## 同步請求
async:false...
$.ajax({
async:false,
type:"POST",
url:"Venue.aspx?act=init",
dataType:"html",
success:function(result){ //function1()
f1();
f2();
}
failure:function (result) {
alert('我在彈');
}
}
function2();
...分析
– 這個時候ajax塊發出請求後,他會等待在function1()這個地方,不會去執行function2(),直到function1()部分執行完畢。
## 非同步請求
async:true...
$.ajax({
async: true, //默認為 true
type:"POST",
url:"./xxx/xxx/a/b.html",
dataType:"html",
success:function(result){ //function1()
f1();
f2();
}
failure:function (result) {
alert('我彈');
},
}
function2();
...分析
– 當ajax塊發出請求後,他將停留function1(),等待返回結果,但同時(在這個等待過程中),function2()就可以跑起來。
總結(兩者的區別)
1. 同步的請求的時候,代碼好比在排隊,必須是一個挨著一個地去執行,前面的沒有結束,後面的代碼就處於一個阻塞的狀態。
2. 非同步執行的時候,數據請求的同時,其他代碼語句也可以同步執行,比如,在數據請求的時候,由於某些願意,需要慢慢的返回請求結果,在這個時候帶寬是很空閑的,那麼,代碼不會等到前面的數據完全請求返回就可以開始後面的代碼運行。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/228069.html
微信掃一掃
支付寶掃一掃