下面以jquery中的ajax解釋一下同步和異步的區別:
可以先運行下面兩段代碼:
同步請求:
$.ajax({
url: "http://jspang.com/DemoApi/typeGoods.php",
type:'post',
async:false,
success: function(){
alert('2')
}
});
alert('1')
在頁面上可以看到,先運行alert('2'),再運行alert('1')
異步請求:
$.ajax({
url: "http://jspang.com/DemoApi/typeGoods.php",
type:'post',
async:true,
success: function(){
alert('2')
}
});
alert('1')
在頁面上可以看到,先運行alert('1'),再運行alert('2')
現在來解釋一下ajax中同步和異步的區別:
ajax中的同步是必須等服務器返回了結果後,纔會去執行success的方法,ajax的success方法沒有執行的情況下,ajax塊外面的js代碼是不執行的;
ajax中的異步是不需要等服務器返回了結果,就可以去執行ajax塊外面的js代碼,等服務器返回了結果後再執行success方法;
相信大家已經清楚了它們的區別。
再說一下使用場景:
驗證登陸一般都用同步ajax,如果我們是通過點擊按鈕的方式來進行驗證,那麼頁面的js代碼早都已經加載完畢了,點擊按鈕的時候再調用ajax請求,我們都不需要在請求接口的過程還運行其他js代碼,當然,如果真有這樣的需求,那麼就使用異步ajax;
那麼什麼時候用異步ajax呢?比如你想一進入某個頁面自動調用某個接口,你當然不想在請求接口的過程中阻塞其他js代碼的執行吧,那麼這時候就用異步ajax。