전역 변수 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;
},
오류: 함수(결과) {
alert("정보 목록 가져오기 오류")
window.close();
}
}); return JsonData;
}
그럼 수업이 있어요.
JScript 코드:
function DrawDropDownList( sFieldRuleMethod)
{
GetJson(sFieldSourceName);
var b = JsonData;
}
그럼 왜 DrawDropDownList를 실행할 때 항상 JsonData를 가져올 수 없나요?
인터럽트 지점을 추적한 결과 DrawDropDownList 메서드의 모든 항목이 실행된 후에 GetJson 메서드가 입력되는 것을 발견했습니다.
GetJson에서 얻은 결과 데이터를 가져올 수 있는 방법이 있나요?
에서 코드를 복사하지 마세요. 코드는 다음과 같습니다. 성공: 함수 (결과) {
//Do Something
},
GetJson은 일반적인 메서드이고 단일 메서드를 실행하고 싶지 않기 때문에 얻은 데이터만 사용하고 싶습니다.
콜백으로 반환할 수 없으며 동기화가 필요합니다. 그게 전부입니다!
동기화를 위해 함수 매개변수를 콜백 함수로 추가하고 ajax 결과를 함수에 전달해야 하는 또 다른 방법은 권장되지 않습니다.
function GetJson(DataSourceName,callback) {
$.ajax({
유형: “ post",
url: "Ajax/AjaxData.ashx?MethodName=" DataSourceName,
contentType: "application/json;",
data: "",
dataType: "json",
성공: 함수(결과) {
JsonData = 결과;
콜백(JsonData)
},
오류: 함수(결과) {
alert("오류 정보 목록 가져오기") ;
window.close();
}
});
//return JsonData;
}