AJAX中根據async的值不一樣分爲同步(async = false)和異步(async = true)兩種執行方式;在W3C的教程中推薦使用異步執行;在默認狀況下爲異步(true)
在異步模式下,當咱們使用AJAX發送完請求後,可能還有代碼須要執行。這個時候可能因爲種種緣由致使服務器尚未響應咱們的請求,可是由於咱們採用了異步執行方式,全部包含AJAX請求代碼的函數中的剩餘代碼將繼續執行。若是咱們是將請求結果交由另一個JS函數去處理的,那麼,這個時候就比如兩條線程同時執行同樣。服務器
在同步模式下,當咱們使用AJAX發送完請求後,後續還有代碼須要執行,咱們一樣將服務器響應交由另外一個JS函數去處理,可是這時的代碼執行狀況是:在服務器沒有響應或者處理響應結果的JS函數尚未處理完成return時,包含請求代碼的函數的剩餘代碼是不可以執行的。就比如單線程同樣,請求發出後就進入阻塞狀態,知道接觸阻塞餘下的代碼纔會繼續執行。異步
咱們在發送AJAX請求後,還須要繼續處理服務器的響應結果,若是這時咱們使用異步請求模式同時未將結果的處理交由另外一個JS函數進行處理。這時就有可能發生這種狀況:異步請求的響應尚未到達,函數已經執行完了return語句了,這時將致使return的結果爲空字符串。async