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:
復(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(“獲取信息列表錯誤”);
window.close();
}
});
return JsonData;
}
然后我有一個類。
JScript code:
復(fù)制代碼 代碼如下:
function DrawDropDownList(sFieldRuleMethod)
{
GetJson(sFieldSourceName);
var b = JsonData;
}
如此,我在執(zhí)行DrawDropDownList的時候,為什么總是獲取不到JsonData呢?
我打斷點跟蹤了下, 發(fā)現(xiàn)是等DrawDropDownList方法里面的所有都執(zhí)行完以后才會進入GetJson方法,
請問有什么辦法把GetJson里面獲得的Result數(shù)據(jù)拿出來?
不要在
復(fù)制代碼 代碼如下:
success: function (Result) {
//Do Something
},
我就是想把獲得的數(shù)據(jù)拿出來用, 因為GetJson是一個通用的方法,不想在里面執(zhí)行單個的邏輯.
不能在回調(diào)中return,并且需要同步,就可以了!
另外一種放過是不建議同步的,需要給我的函數(shù)增加一個函數(shù)參數(shù)作為回調(diào)函數(shù),將ajax的結(jié)果傳遞到該函數(shù),如下代碼細節(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(“獲取信息列表錯誤”);
window.close();
}
});
//return JsonData;
}
相關(guān)文章
Javascript學(xué)習(xí)筆記之 對象篇(三) : hasOwnProperty
判斷一個屬性是定義在對象本身而不是繼承自原型鏈,我們需要使用從 Object.prototype 繼承而來的 hasOwnProperty 方法。 hasOwnProperty 方法是 Javascript 中唯一一個處理對象屬性而不會往上遍歷原型鏈的。2014-06-06
Javascript中的數(shù)學(xué)函數(shù)集合
Javascript中的數(shù)學(xué)函數(shù)集合...2007-05-05
簡單談?wù)凧avascript函數(shù)中的arguments
在JavaScript中,arguments對象是比較特別的一個對象,實際上是當前函數(shù)的一個內(nèi)置屬性。下面這篇文章主要介紹了關(guān)于Javascript函數(shù)中的arguments面貌以及如何轉(zhuǎn)化為數(shù)組的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-02-02
關(guān)于textarea提交的內(nèi)容無法換行的解決辦法
本篇文章小編為大家介紹,關(guān)于textarea提交的內(nèi)容無法換行的解決辦法,有需要的朋友可以參考一下2013-04-04
實例:用 JavaScript 來操作字符串(一些字符串函數(shù))
實例:用 JavaScript 來操作字符串(一些字符串函數(shù))...2007-02-02

