欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Ajax執(zhí)行順序流程及回調(diào)問題分析

 更新時(shí)間:2012年12月10日 09:19:16   作者:  
有些朋友在實(shí)現(xiàn)異步局部更新數(shù)據(jù),會(huì)遇到ajax的執(zhí)行問題,本文將對(duì)此進(jìn)行詳細(xì)介紹,需要了解的朋友可以參考下
一個(gè)全局的變量var JsonData;
我這里有一個(gè)Ajax處理的方法:
JScript code:
復(fù)制代碼 代碼如下:

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(“獲取信息列表錯(cuò)誤”);
window.close();
}
});
return JsonData;
}

然后我有一個(gè)類。
JScript code:
復(fù)制代碼 代碼如下:

function DrawDropDownList(sFieldRuleMethod)
{
GetJson(sFieldSourceName);
var b = JsonData;
}

如此,我在執(zhí)行DrawDropDownList的時(shí)候,為什么總是獲取不到JsonData呢?
我打斷點(diǎn)跟蹤了下, 發(fā)現(xiàn)是等DrawDropDownList方法里面的所有都執(zhí)行完以后才會(huì)進(jìn)入GetJson方法,
請(qǐng)問有什么辦法把GetJson里面獲得的Result數(shù)據(jù)拿出來?
不要在
復(fù)制代碼 代碼如下:

success: function (Result) {
//Do Something
},

我就是想把獲得的數(shù)據(jù)拿出來用, 因?yàn)镚etJson是一個(gè)通用的方法,不想在里面執(zhí)行單個(gè)的邏輯.
不能在回調(diào)中return,并且需要同步,就可以了!
另外一種放過是不建議同步的,需要給我的函數(shù)增加一個(gè)函數(shù)參數(shù)作為回調(diào)函數(shù),將ajax的結(jié)果傳遞到該函數(shù),如下代碼細(xì)節(jié):
復(fù)制代碼 代碼如下:

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(“獲取信息列表錯(cuò)誤”);
window.close();
}
});
//return JsonData;
}

相關(guān)文章

最新評(píng)論