ajax請求的五個步驟 同步ajax請求


一.什么是同步請求:(false) 同步請求即是當前發出請求后,瀏覽器什么都不能做,必須得等到請求完成返回數據之后,才會執行后續的代碼,相當于是排隊,前一個人辦理完自己的事務,下一個人才能接著辦 。也就是說,當JS代碼加載到當前AJAX的時候會把頁面里所有的代碼停止加載,頁面處于一個假死狀態,當這個AJAX執行完畢后才會繼續運行其他代碼頁面解除假死狀態(即當ajax返回數據后,才執行后面的function2) 。
同步:提交請求->等待服務器處理->處理完畢返回 這個期間客戶端瀏覽器不能干任何事異步: 請求通過事件觸發->服務器處理(這是瀏覽器仍然可以作其他事情)->處理完畢同步需要等待返回結果才能繼續,異步不必等待,一般需要監聽異步的結果 。
二.什么是異步請求:(true) 異步請求就當發出請求的同時,瀏覽器可以繼續做任何事,Ajax發送請求并不會影響頁面的加載與用戶的操作,相當于是在兩條線上,各走各的,互不影響 。
一般默認值為true異步 。異步請求可以完全不影響用戶的體驗效果,無論請求的時間長或者短,用戶都在專心的操作頁面的其他內容,并不會有等待的感覺 。
簡單來說同步是在一條直線上的隊列,異步不在一個隊列上各走各的 。
Ajax 同步和異步區別? 我們在使用 ajax 一般都會使用異步處理 。
異步處理:我們通過事件觸發到 ajax,請求服務器,在這個期間無論服務器有沒有響應,客戶端的其他代碼一樣可以運行 。
同步處理:我們通過實踐觸發 ajax,請求服務器,在這個期間等待服務器處理請求, 在這個期間客戶端不能做任何處理 。當 ajax 執行完畢才會繼續執行其他代碼 。
以jquery 的 async:false,這個屬性
默認是true:異步,false:同步 。舉例:
同步就是你叫我去吃飯,我聽到了就和你去吃飯;如果沒有聽到,你就不停的叫,直到我告訴你聽到了,才一起去吃飯 。
異步就是你叫我,然后自己去吃飯,我得到消息后可能立即走,也可能等到忙完才去吃飯 。
AJAX中根據async的值不同分為同步(async = false)和異步(async = true)
$.ajax({type: "post",url: "path",cache:false,async:false,dataType: ($.browser.msie) ? "text" : "xml",success: function(xmlobj){function1(){};} });function2(){}; 默認情況下async是true
同步和異步有什么不同:
異步:在異步模式下,當我們使用AJAX發送完請求后,可能還有代碼需要執行 。這個時候可能由于種種原因導致服務器還沒有響應我們的請求,但是因為我們采用了異步執行方式,所有包含AJAX請求代碼的函數中的剩余代碼將繼續執行 。如果我們是將請求結果交由另外一個JS函數去處理的,那么,這個時候就好比兩條線程同時執行一樣 。

猜你喜歡