jquery中的ajax同步和異步詳解
之前一直在寫JQUERY代碼的時(shí)候遇到AJAX加載數(shù)據(jù)都需要考慮代碼運(yùn)行順序問(wèn)題。最近的項(xiàng)目用了到AJAX同步。這個(gè)同步的意思是當(dāng)JS代碼加載到當(dāng)前AJAX的時(shí)候會(huì)把頁(yè)面里所有的代碼停止加載,頁(yè)面出去假死狀態(tài),當(dāng)這個(gè)AJAX執(zhí)行完畢后才會(huì)繼續(xù)運(yùn)行其他代碼頁(yè)面假死狀態(tài)解除。
而異步則這個(gè)AJAX代碼運(yùn)行中的時(shí)候其他代碼一樣可以運(yùn)行。
jquery的async:false,這個(gè)屬性
默認(rèn)是true:異步,false:同步。
$.ajax({
type: "post",
url: "path",
cache:false,
async:false,
dataType: ($.browser.msie) ? "text" : "xml",
success: function(xmlobj){
}
});
有了這個(gè)屬性可以相對(duì)的減少代碼運(yùn)行書序問(wèn)題,但是如果用的太多,頁(yè)面假死次數(shù)太多。這樣反而導(dǎo)致用戶體驗(yàn)不佳~!
$.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默認(rèn)的設(shè)置值為true,這種情況為異步方式,就是說(shuō)當(dāng)ajax發(fā)送請(qǐng)求后,在等待server端返回的這個(gè)過(guò)程中,前臺(tái)會(huì)繼續(xù) 執(zhí)行ajax塊后面的腳本,直到server端返回正確的結(jié)果才會(huì)去執(zhí)行success,也就是說(shuō)這時(shí)候執(zhí)行的是兩個(gè)線程,ajax塊發(fā)出請(qǐng)求后一個(gè)線程 和ajax塊后面的腳本(另一個(gè)線程)例:
$.ajax({
type:"POST",
url:"Venue.aspx?act=init",
dataType:"html",
success:function(result){ //function1()
f1();
f2();
}
failure:function (result) {
alert('Failed');
},
}
function2();
在上例中,當(dāng)ajax塊發(fā)出請(qǐng)求后,他將停留function1(),等待server端的返回,但同時(shí)(在這個(gè)等待過(guò)程中),前臺(tái)會(huì)去執(zhí)行function2(),也就是說(shuō),在這個(gè)時(shí)候出現(xiàn)兩個(gè)線程,我們這里暫且說(shuō)為function1() 和function2()。
當(dāng)把a(bǔ)syn設(shè)為false時(shí),這時(shí)ajax的請(qǐng)求時(shí)同步的,也就是說(shuō),這個(gè)時(shí)候ajax塊發(fā)出請(qǐng)求后,他會(huì)等待在function1()這個(gè)地方,不會(huì)去執(zhí)行function2(),知道function1()部分執(zhí)行完畢。
以上內(nèi)容,就是本文給大家介紹的jquery中的ajax同步和異步詳解,希望大家喜歡。
- jQuery中Ajax的get、post等方法詳解
- jQuery中ajax - post() 方法實(shí)例詳解
- jQuery中ajax - get() 方法實(shí)例詳解
- 實(shí)例詳解angularjs和ajax的結(jié)合使用
- 談?wù)刯Query Ajax用法詳解
- jQuery學(xué)習(xí)筆記之Ajax用法實(shí)例詳解
- jQuery實(shí)現(xiàn)form表單基于ajax無(wú)刷新提交方法詳解
- jquery+ajax實(shí)現(xiàn)注冊(cè)實(shí)時(shí)驗(yàn)證實(shí)例詳解
- jQuery使用$.ajax進(jìn)行即時(shí)驗(yàn)證實(shí)例詳解
- Jsonp 關(guān)鍵字詳解及json和jsonp的區(qū)別,ajax和jsonp的區(qū)別
- jQuery中ajax的load()與post()方法實(shí)例詳解
- json傳值以及ajax接收詳解
- Ajax基礎(chǔ)詳解教程(一)
相關(guān)文章
Ajax發(fā)送和接收二進(jìn)制字節(jié)流數(shù)據(jù)的方法
這篇文章主要介紹了Ajax發(fā)送和接收二進(jìn)制字節(jié)流數(shù)據(jù)的方法,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-05-05
探討Ajax中有關(guān)readyState(狀態(tài)值)和status(狀態(tài)碼)的問(wèn)題
這篇文章主要介紹了探討Ajax中有關(guān)readyState(狀態(tài)值)和status(狀態(tài)碼)的問(wèn)題的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06
通過(guò)數(shù)據(jù)庫(kù)和ajax方法寫出地圖的實(shí)例代碼
AJAX 是與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)的藝術(shù),在不重新加載整個(gè)頁(yè)面的情況下。這篇文章主要介紹了通過(guò)數(shù)據(jù)庫(kù)和ajax方法寫出地圖的實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下2016-10-10
Ajax 無(wú)刷新在注冊(cè)用戶名時(shí)的應(yīng)用的代碼
Ajax 無(wú)刷新在注冊(cè)用戶名時(shí)的應(yīng)用的代碼...2007-04-04
關(guān)于Ajax異步請(qǐng)求后臺(tái)數(shù)據(jù)進(jìn)行動(dòng)態(tài)分頁(yè)功能
這篇文章主要介紹了Ajax異步請(qǐng)求后臺(tái)數(shù)據(jù)進(jìn)行動(dòng)態(tài)分頁(yè)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2018-06-06
ajax+asp無(wú)限級(jí)分類樹(shù)型結(jié)構(gòu)的代碼
ajax+asp無(wú)限級(jí)分類樹(shù)型結(jié)構(gòu)的代碼...2007-10-10
Ajax與用戶交互的JSON數(shù)據(jù)存儲(chǔ)格式
數(shù)據(jù)存儲(chǔ)是JavaScript的核心功能,適當(dāng)?shù)拇娣藕脭?shù)據(jù),就有利于我們組織起結(jié)構(gòu),又能使應(yīng)用程序稍后訪問(wèn)這些內(nèi)容更加容易。這篇文章給大家介紹了Ajax與用戶交互的JSON數(shù)據(jù)存儲(chǔ)格式,感興趣的朋友一起看看吧2016-11-11

