AJAX同步和非同步特別及使用情境

來源:互聯網
上載者:User

AJAX中根據async的值不同分為同步(async = false)和非同步(async = true)兩種執行方式;在W3C的教程中推薦使用非同步執行;

下面來區別一下同步和非同步有什麼不同:

非同步:在非同步模式下,當我們使用AJAX發送完請求後,可能還有代碼需要執行。這個時候可能由於種種原因導致伺服器還沒有響應我們的請求,但是因為我們採用了非同步執行方式,所有包含AJAX請求代碼的函數中的剩餘代碼將繼續執行。如果我們是將請求結果交由另外一個JS函數去處理的,那麼,這個時候就好比兩條線程同時執行一樣。

同步:在同步模式下,當我們使用AJAX發送完請求後,後續還有代碼需要執行,我們同樣將伺服器響應交由另一個JS函數去處理,但是這時的代碼執行情況是:在伺服器沒有響應或者處理響應結果的JS函數還沒有處理完成return時,包含請求代碼的函數的剩餘代碼是不能夠執行的。就好比單線程一樣,請求發出後就進入阻塞狀態,知道接觸阻塞餘下的代碼才會繼續執行。

如何選擇同步還是非同步模式?要回答這一問題,我們可以通過下面可能出現的問題來回答:

我們在發送AJAX請求後,還需要繼續處理伺服器的響應結果,如果這時我們使用非同步請求模式同時未將結果的處理交由另一個JS函數進行處理。這時就有可能發生這種情況:非同步請求的響應還沒有到達,函數已經執行完了return語句了,這時將導致return的結果為空白字串。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.