對於jQuery中$.ajax方法的新認識

來源:互聯網
上載者:User

使用jQuery做web前端開發的人,相信對$.ajax這個方法不會陌生,我也一直在使用,可是一直沒有深究過其中每個參數的含義,比如今天要說到的 async 參數。

這個參數官方手冊上給出的解釋是:
async Boolean
Default: true
By default, all requests are sent asynchronously (i.e. this is set to true by default). If you need synchronous requests, set this option to false. Cross-domain requests and dataType: "jsonp" requests do not support synchronous operation. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active.

在這裡,async預設的設定值為true,這種情況為非同步方式,就是說當ajax發送請求後,在等待server端返回的這個過程中,前台會繼續 執行ajax塊後面的指令碼,直到server端返回正確的結果才會去執行success,也就是說這時候執行的是兩個線程,ajax塊發出請求後一個線程 和ajax塊後面的指令碼。而當async為false時則指令碼會等帶server的響應,在server返回結果之後才會執行後面的指令碼,在資料返回之前等於javascript指令碼是掛起的。

這個其實不難理解,不過如果和$(document).ajaxStart()以及$(document).ajaxStop()結合起來使用,兩者的差別就大了,async為true時預設會觸發$(document).ajaxStart()和$(document).ajaxStop(),也就是說當ajax請求為非同步請求時,我們綁定在元素上的ajaxStart和ajaxStop才會起效果,反之,當async為false即ajax為同步請求時,這兩個方法以及相關的ajaxComplete等都會失效。

 

轉:http://hmw.iteye.com/blog/1161724

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.