ホームページ  >  記事  >  ウェブフロントエンド  >  Ajax実行シーケンス処理とコールバック問題解析_基礎知識

Ajax実行シーケンス処理とコールバック問題解析_基礎知識

WBOY
WBOYオリジナル
2016-05-16 17:47:061216ブラウズ

グローバル変数 var JsonData;
ここに Ajax 処理メソッドがあります:
JScript コード:

コードをコピーしますコードは次のとおりです。

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("情報リスト取得エラー");
}
}; return JsonData;
}


これでクラスができました。
JScript コード:


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


では、DrawDropDownList を実行すると常に JsonData を取得できないのはなぜでしょうか。
中断ポイントを追跡したところ、DrawDropDownList メソッドのすべてが実行された後に GetJson メソッドが入力されることがわかりました。
GetJson で取得した結果データを取得する方法はありますか?



success: function (結果) {
//Do Something
},


GetJson は一般的なメソッドであり、単一のメソッドを実行したくないため、取得したデータを使用したいだけです。
コールバックでは返せないため、同期する必要があります。それだけです。
もう 1 つの方法は同期には推奨されません。関数パラメータをコールバック関数として追加し、その関数に ajax の結果を渡す必要があります。


コードをコピーします コードは次のとおりです:
function GetJson(DataSourceName,callback) {
$.ajax({
type: " post"、
url: "Ajax/AjaxData.ashx?MethodName=" DataSourceName、
contentType: "application/json;"、
data: ""、
dataType: "json",
成功: 関数 (結果) {
JsonData = 結果;
callback(JsonData)
},
エラー: 関数 (結果) {
alert("エラー情報リストの取得") ;
window.close();
}
});
//return JsonData;
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。