DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> JavaScript基礎知識 >> Ajax執行順序流程及回調問題分析
Ajax執行順序流程及回調問題分析
編輯:JavaScript基礎知識     
一個全局的變量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;
}

如此,我在執行DrawDropDownList的時候,為什麼總是獲取不到JsonData呢?
我打斷點跟蹤了下, 發現是等DrawDropDownList方法裡面的所有都執行完以後才會進入GetJson方法,
請問有什麼辦法把GetJson裡面獲得的Result數據拿出來?
不要在
復制代碼 代碼如下:
success: function (Result) {
//Do Something
},

我就是想把獲得的數據拿出來用, 因為GetJson是一個通用的方法,不想在裡面執行單個的邏輯.
不能在回調中return,並且需要同步,就可以了!
另外一種放過是不建議同步的,需要給我的函數增加一個函數參數作為回調函數,將ajax的結果傳遞到該函數,如下代碼細節:
復制代碼 代碼如下:
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;
}
XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved