jquery中的ajax同步和異步詳解
之前一直在寫JQUERY代碼的時候遇到AJAX加載數(shù)據(jù)都需要考慮代碼運行順序問題。最近的項目用了到AJAX同步。這個同步的意思是當JS代碼加載到當前AJAX的時候會把頁面里所有的代碼停止加載,頁面出去假死狀態(tài),當這個AJAX執(zhí)行完畢后才會繼續(xù)運行其他代碼頁面假死狀態(tài)解除。
而異步則這個AJAX代碼運行中的時候其他代碼一樣可以運行。
jquery的async:false,這個屬性
默認是true:異步,false:同步。
$.ajax({
type: "post",
url: "path",
cache:false,
async:false,
dataType: ($.browser.msie) ? "text" : "xml",
success: function(xmlobj){
}
});
有了這個屬性可以相對的減少代碼運行書序問題,但是如果用的太多,頁面假死次數(shù)太多。這樣反而導致用戶體驗不佳~!
$.Ajax()中 async 和success的官方的解釋:
async Boolean Default: true By default, all requests are sent asynchronous (e.g. this is set to true by default). If you need synchronous requests, set this option to false. Note that synchronous requests may temporarily lock the browser, disabling any actions while the request is active. success Function A function to be called if the request succeeds. The function gets passed two arguments: The data returned from the server, formatted according to the 'dataType' parameter, and a string describing the status. This is an Ajax Event.
在這里,async默認的設置值為true,這種情況為異步方式,就是說當ajax發(fā)送請求后,在等待server端返回的這個過程中,前臺會繼續(xù) 執(zhí)行ajax塊后面的腳本,直到server端返回正確的結(jié)果才會去執(zhí)行success,也就是說這時候執(zhí)行的是兩個線程,ajax塊發(fā)出請求后一個線程 和ajax塊后面的腳本(另一個線程)例:
$.ajax({
type:"POST",
url:"Venue.aspx?act=init",
dataType:"html",
success:function(result){ //function1()
f1();
f2();
}
failure:function (result) {
alert('Failed');
},
}
function2();
在上例中,當ajax塊發(fā)出請求后,他將停留function1(),等待server端的返回,但同時(在這個等待過程中),前臺會去執(zhí)行function2(),也就是說,在這個時候出現(xiàn)兩個線程,我們這里暫且說為function1() 和function2()。
當把asyn設為false時,這時ajax的請求時同步的,也就是說,這個時候ajax塊發(fā)出請求后,他會等待在function1()這個地方,不會去執(zhí)行function2(),知道function1()部分執(zhí)行完畢。
以上內(nèi)容,就是本文給大家介紹的jquery中的ajax同步和異步詳解,希望大家喜歡。
- jQuery中Ajax的get、post等方法詳解
- jQuery中ajax - post() 方法實例詳解
- jQuery中ajax - get() 方法實例詳解
- 實例詳解angularjs和ajax的結(jié)合使用
- 談談jQuery Ajax用法詳解
- jQuery學習筆記之Ajax用法實例詳解
- jQuery實現(xiàn)form表單基于ajax無刷新提交方法詳解
- jquery+ajax實現(xiàn)注冊實時驗證實例詳解
- jQuery使用$.ajax進行即時驗證實例詳解
- Jsonp 關(guān)鍵字詳解及json和jsonp的區(qū)別,ajax和jsonp的區(qū)別
- jQuery中ajax的load()與post()方法實例詳解
- json傳值以及ajax接收詳解
- Ajax基礎詳解教程(一)
相關(guān)文章
Ajax發(fā)送和接收二進制字節(jié)流數(shù)據(jù)的方法
這篇文章主要介紹了Ajax發(fā)送和接收二進制字節(jié)流數(shù)據(jù)的方法,非常不錯,具有參考借鑒價值,感興趣的朋友一起看看吧2016-05-05
探討Ajax中有關(guān)readyState(狀態(tài)值)和status(狀態(tài)碼)的問題
這篇文章主要介紹了探討Ajax中有關(guān)readyState(狀態(tài)值)和status(狀態(tài)碼)的問題的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06
通過數(shù)據(jù)庫和ajax方法寫出地圖的實例代碼
AJAX 是與服務器交換數(shù)據(jù)并更新部分網(wǎng)頁的藝術(shù),在不重新加載整個頁面的情況下。這篇文章主要介紹了通過數(shù)據(jù)庫和ajax方法寫出地圖的實例代碼的相關(guān)資料,需要的朋友可以參考下2016-10-10
關(guān)于Ajax異步請求后臺數(shù)據(jù)進行動態(tài)分頁功能
這篇文章主要介紹了Ajax異步請求后臺數(shù)據(jù)進行動態(tài)分頁功能,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧2018-06-06
ajax+asp無限級分類樹型結(jié)構(gòu)的代碼
ajax+asp無限級分類樹型結(jié)構(gòu)的代碼...2007-10-10

