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ù)為undefined原因分析
Ajax 允許在不干擾 Web 應用程序的顯示和行為的情況下在后臺進行數(shù)據(jù)檢索。這篇文章主要介紹了ajax獲取json數(shù)據(jù)為undefined--原因,需要的朋友可以參考下2017-11-11
jquery訪問servlet并返回數(shù)據(jù)到頁面的方法
這篇文章主要介紹了jquery訪問servlet并返回數(shù)據(jù)到頁面的方法,實例分析了jQuery操作servlet實現(xiàn)Ajax的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02
Ajax 配合node js multer 實現(xiàn)文件上傳功能
這篇文章主要介紹了Ajax 配合node js multer 實現(xiàn)文件上傳功能,需要的朋友可以參考下2017-08-08

