ajax中根據async的值不同分為同步(async = false)和非同步(async = true)兩種執行方式;在w3c的教程中推薦使用非同步執行;在預設情況下為非同步(true)在非同步模式下,當我們使用ajax傳送完請求後,可能還有**需要執行。這個時候可能由於種種原因導致伺服器還沒有響應我們的請求,但是因為我們採用了非同步執行方式,所有包含ajax請求**的函式中的剩餘**將繼續執行。如果我們是將請求結果交由另外乙個js函式去處理的,那麼,這個時候就好比兩條執行緒同時執行一樣。
在同步模式下,當我們使用ajax傳送完請求後,後續還有**需要執行,我們同樣將伺服器響應交由另乙個js函式去處理,但是這時的**執**況是:在伺服器沒有響應或者處理響應結果的js函式還沒有處理完成return時,包含請求**的函式的剩餘**是不能夠執行的。就好比單執行緒一樣,請求發出後就進入阻塞狀態,知道接觸阻塞餘下的**才會繼續執行。
我們在傳送ajax請求後,還需要繼續處理伺服器的響應結果,如果這時我們使用非同步請求模式同時未將結果的處理交由另乙個js函式進行處理。這時就有可能發生這種情況:非同步請求的響應還沒有到達,函式已經執行完了return語句了,這時將導致return的結果為空字串。
ajax 同步和非同步區別?
ajax 同步和非同步區別?我們在使用 ajax 一般都會使用非同步處理。非同步處理呢就是我們通過事件觸發到 ajax,請求伺服器,在這個期間無論伺服器有沒有響應,客戶端的其他 一樣可以執行。同步處理 我們通過實踐觸發 ajax,請求伺服器,在這個期間等待伺服器處理請求,在這個期間客戶端不能做任何處...
ajax同步和非同步區別
我們在使用 ajax 一般都會使用非同步處理。非同步處理呢就是我們通過事件觸發到 ajax,請求伺服器,在這個期間無論伺服器有沒有響應,客戶端的其他 一樣可以執行。同步處理 我們通過實踐觸發 ajax,請求伺服器,在這個期間等待伺服器處理請求,在這個期間客戶端不能做任何處理。當 ajax 執行完畢才...
Ajax同步和非同步的區別
之前一直在寫jquery 的時候遇到ajax載入資料都需要考慮 執行順序問題。最近的專案用了到ajax同步。這個同步的意思是當js 載入到當前ajax的時候會把頁面裡所有的 停止載入,頁面出去假死狀態,當這個ajax執 行完畢後才會繼續執行其他 頁面假死狀態解除。而非同步則這個ajax 執行中的時候...