Ajax請求中的異步與同步,需要注意的地方說明
更新時間:2012年04月14日 01:54:03 作者:
默認設置下,所有請求均為異步請求。如果需要發(fā)送同步請求,請將此選項設置為 false。注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行
之前做項目時候,用到一個表格控件,它的數(shù)據(jù)是異步加載的,我在這個表格綁定數(shù)據(jù)的函數(shù)下面友做了一些業(yè)務處理,運行頁面的時候,用瀏覽器在我寫業(yè)務處理那地方打上斷點跟蹤,它確實執(zhí)行了,可以最后顯示的時候,它的處理被覆蓋了,我很納悶,當時也知道是這個表格綁定函數(shù)那出問題了,可是時間緊,它的函數(shù)是封裝的,沒有去具體跟蹤,就直接讓我的那部分業(yè)務處理延遲200ms執(zhí)行,這樣就好了,這是個笨法,不過也是個有效的辦法,呵呵。
后來看了下文檔,查了些資料,其實原理應該是這樣的:
默認設置下,所有請求均為異步請求。如果需要發(fā)送同步請求,請將此選項設置為 false。注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行。
var temp;
$.ajax({
async: false,
type : "POST",
url : defaultPostData.url,
dataType : 'json',
success : function(data) {
temp=data;
}
});
alert(temp);
這個ajax請求則為同步請求,在沒有返回值之前,alert(temp)是不會執(zhí)行的。
如果async設置為:true,則不會等待ajax請求返回的結果,會直接執(zhí)行ajax后面的語句。
后來看了下文檔,查了些資料,其實原理應該是這樣的:
默認設置下,所有請求均為異步請求。如果需要發(fā)送同步請求,請將此選項設置為 false。注意,同步請求將鎖住瀏覽器,用戶其它操作必須等待請求完成才可以執(zhí)行。
復制代碼 代碼如下:
var temp;
$.ajax({
async: false,
type : "POST",
url : defaultPostData.url,
dataType : 'json',
success : function(data) {
temp=data;
}
});
alert(temp);
這個ajax請求則為同步請求,在沒有返回值之前,alert(temp)是不會執(zhí)行的。
如果async設置為:true,則不會等待ajax請求返回的結果,會直接執(zhí)行ajax后面的語句。
相關文章
$.ajax傳JSON數(shù)據(jù)到后臺的注意事項小結
這篇文章主要介紹了$.ajax傳JSON數(shù)據(jù)到后臺的注意事項,需要的朋友可以參考下2014-05-05history保存列表頁ajax請求的狀態(tài)使用示例詳解
這篇文章主要為大家介紹了history保存列表頁ajax請求的狀態(tài)使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12關于ajax對象一些常用屬性、事件和方法大小寫比較常見的問題總結
最近比較空閑,于是抽個時間整理些關于ajax方法的東東。在項目中經(jīng)常發(fā)現(xiàn)ajax板塊好多問題都是屬性,方法,事件大小寫不區(qū)分問題,最終導致了程序運行出現(xiàn)麻煩,下面給大家介紹關于ajax對象一些常用屬性、事件和方法大小寫比較常見的問題總結2015-10-10IE下jquery ajax無法獲得最新數(shù)據(jù)的問題解決(IE緩存)
利用ajax查詢數(shù)據(jù),在谷歌瀏覽器下可以獲取到最新數(shù)據(jù),而在IE中獲得是舊數(shù)據(jù),無法獲得最新的數(shù)據(jù),經(jīng)查資料,才發(fā)現(xiàn)時IE緩存再作怪2013-08-08