1. 程式人生 > >ajax同步與異步的坑

ajax同步與異步的坑

及其 clas 需求 數據 jquer 一個 就是 結果 請求

之前工作中一個需求,需要動態的添加一組下拉菜單並為這個菜單綁定一個插件,很明顯獲取數據用Ajax,這本身是沒錯的,坑就坑在我用了 同步請求,當服務器端正確返回數據時再去執行下一個方法,這邏輯本身沒有問題。所以當我寫完之後,我發現頁面加載速度及其的慢,我刪除了一些多余的和http請求,仍然不能解決這個問題,然後我突然想到了Ajax同步和異步的問題,改成異步之後頁面數據加載就快了很多,希望能正確的使用同步和異步。 在Jquery中ajax方法中async用於控制同步和異步,當async值為true時是異步請求,當async值為fase時是同步請求。ajax中async這個屬性,用於控制請求數據的方式,默認是true,即默認以異步的方式請求數據。 1、async值為true (異步) 當ajax發送請求後,在等待server端返回的這個過程中,前臺會繼續 執行ajax塊後面的代碼,直到server端返回正確的結果才會再去執行success,也就是說這時候執行的是兩個線程,ajax塊發出請求後一個線程 和ajax塊後面的腳本(另一個線程) 2、async值為false (同步) Ajax發出請求之後在等server端返回的過程中不會再執行任何代碼,暫停在當前的請求中,直到server端正確返回數據之後,會先執行Ajax中success的回調方法,回調執行完成之後才會繼續執行余下的代碼。

ajax同步與異步的坑