>웹 프론트엔드 >JS 튜토리얼 >Ajax 실행 순서 프로세스 및 콜백 문제 분석_기본 지식

Ajax 실행 순서 프로세스 및 콜백 문제 분석_기본 지식

WBOY
WBOY원래의
2016-05-16 17:47:061255검색

전역 변수 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;
}

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.