Ajax執行順序流程及回調問題分析

來源:互聯網
上載者:User

一個全域的變數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;
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.