Ajax執(zhí)行順序流程及回調(diào)問題分析
更新時間:2012年12月10日 09:19:16 作者:
有些朋友在實現(xiàn)異步局部更新數(shù)據(jù),會遇到ajax的執(zhí)行問題,本文將對此進行詳細介紹,需要了解的朋友可以參考下
一個全局的變量var JsonData;
我這里有一個Ajax處理的方法:
JScript code:
function GetJson(DataSourceName) {
$.ajax({
type: “post”,
url: “Ajax/AjaxData.ashx?MethodName=” + DataSourceName,
contentType: “application/json;”,
data: “”,
dataType: “json”,
success: function (Result) {
JsonData = Result;
},
error: function (result) {
alert(“獲取信息列表錯誤”);
window.close();
}
});
return JsonData;
}
然后我有一個類。
JScript code:
function DrawDropDownList(sFieldRuleMethod)
{
GetJson(sFieldSourceName);
var b = JsonData;
}
如此,我在執(zhí)行DrawDropDownList的時候,為什么總是獲取不到JsonData呢?
我打斷點跟蹤了下, 發(fā)現(xiàn)是等DrawDropDownList方法里面的所有都執(zhí)行完以后才會進入GetJson方法,
請問有什么辦法把GetJson里面獲得的Result數(shù)據(jù)拿出來?
不要在
success: function (Result) {
//Do Something
},
我就是想把獲得的數(shù)據(jù)拿出來用, 因為GetJson是一個通用的方法,不想在里面執(zhí)行單個的邏輯.
不能在回調(diào)中return,并且需要同步,就可以了!
另外一種放過是不建議同步的,需要給我的函數(shù)增加一個函數(shù)參數(shù)作為回調(diào)函數(shù),將ajax的結(jié)果傳遞到該函數(shù),如下代碼細節(jié):
function GetJson(DataSourceName,callback) {
$.ajax({
type: “post”,
url: “Ajax/AjaxData.ashx?MethodName=” + DataSourceName,
contentType: “application/json;”,
data: “”,
dataType: “json”,
success: function (Result) {
JsonData = Result;
callback(JsonData)
},
error: function (result) {
alert(“獲取信息列表錯誤”);
window.close();
}
});
//return JsonData;
}
我這里有一個Ajax處理的方法:
JScript code:
復制代碼 代碼如下:
function GetJson(DataSourceName) {
$.ajax({
type: “post”,
url: “Ajax/AjaxData.ashx?MethodName=” + DataSourceName,
contentType: “application/json;”,
data: “”,
dataType: “json”,
success: function (Result) {
JsonData = Result;
},
error: function (result) {
alert(“獲取信息列表錯誤”);
window.close();
}
});
return JsonData;
}
然后我有一個類。
JScript code:
復制代碼 代碼如下:
function DrawDropDownList(sFieldRuleMethod)
{
GetJson(sFieldSourceName);
var b = JsonData;
}
如此,我在執(zhí)行DrawDropDownList的時候,為什么總是獲取不到JsonData呢?
我打斷點跟蹤了下, 發(fā)現(xiàn)是等DrawDropDownList方法里面的所有都執(zhí)行完以后才會進入GetJson方法,
請問有什么辦法把GetJson里面獲得的Result數(shù)據(jù)拿出來?
不要在
復制代碼 代碼如下:
success: function (Result) {
//Do Something
},
我就是想把獲得的數(shù)據(jù)拿出來用, 因為GetJson是一個通用的方法,不想在里面執(zhí)行單個的邏輯.
不能在回調(diào)中return,并且需要同步,就可以了!
另外一種放過是不建議同步的,需要給我的函數(shù)增加一個函數(shù)參數(shù)作為回調(diào)函數(shù),將ajax的結(jié)果傳遞到該函數(shù),如下代碼細節(jié):
復制代碼 代碼如下:
function GetJson(DataSourceName,callback) {
$.ajax({
type: “post”,
url: “Ajax/AjaxData.ashx?MethodName=” + DataSourceName,
contentType: “application/json;”,
data: “”,
dataType: “json”,
success: function (Result) {
JsonData = Result;
callback(JsonData)
},
error: function (result) {
alert(“獲取信息列表錯誤”);
window.close();
}
});
//return JsonData;
}
相關(guān)文章
JS中attr和prop屬性的區(qū)別以及優(yōu)先選擇示例介紹
這篇文章主要介紹了JS中attr和prop屬性的區(qū)別以及優(yōu)先選擇,需要的朋友可以參考下2014-06-06JavaScript獲取tr td 的三種方式全面總結(jié)(推薦)
這篇文章主要介紹了JavaScript獲取tr td 的三種方式,具體操作步驟大家可查看下文詳細講解,感興趣的小伙伴們可以參考一下。2017-08-08javascript中對Date類型的常用操作小結(jié)
下面小編就為大家?guī)硪黄猨avascript中對Date類型的常用操作小結(jié)。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05