이 글은 주로 js의 ajax 실행 순서 문제를 설명합니다. 이제 JS에서 발생하는
의 실행 순서에 대한 글을 살펴보겠습니다. 실행 순서 문제, 특히 AJAX의 실행 순서는 js의 기본 실행 순서가 위에서 아래입니다.
다음 코드 부분을 보세요
callback:function(value, validator, $field){ $.ajax({ url : window.ctx+"/sys/manager/validateLoginName", data:{loginName:value}, type : 'post', dataType : "json", async:true, success: function(result){ if(result!=null) globalVariable.flag=result; alert(1) }}); alert(2) if(globalVariable.flag!=1)return true; if(globalVariable.flag==1)return false; }
여기 AJAX는 비동기 요청이므로 브라우저에 2가 먼저 나타나고 그 다음 1이 팝업됩니다
#🎜 🎜# 이로 인해 문제가 발생합니다. 플래그가 0으로 설정되어 있으면 AJAX를 실행한 후 1이 됩니다. 그러면 if 문은 실제로 0을 사용하여 AJAX를 실행한 후에 판단합니다. 할당된 플래그는 if 판단에 사용됩니다. (자세한 내용을 알고 싶다면 PHP 중국어 웹사이트AJAX 개발 매뉴얼 열을 참조하세요.)
Solution:
첫 번째 방법
두 번째 방법이 더 일반적으로 사용됩니다.
예를 들어 다음 코드 function test(){
$.ajax({
url : window.ctx+"/sys/manager/addUserRole",
data:formData,
type : 'post',
dataType : "json",
processData:false,
contentType:false,
success: function(result){
if(result!=null){
testCallback();
}
}});
test2();
}
function testCallback(){
alert(1)
}
function test2(){
alert(2)
}
AJAX는 비동기식입니다. 예, 1과 2를 차례로 팝업하고 싶습니다. 테스트의 콜백 함수에 test2만 넣으면
좋아요
function test(){ $.ajax({ url : window.ctx+"/sys/manager/addUserRole", data:formData, type : 'post', dataType : "json", processData:false, contentType:false, success: function(result){ if(result!=null){ testCallback(); } }}); } function testCallback(){ alert(1) test2() } function test2(){ alert(2) }
이 글은 여기에서 끝납니다. (자세한 내용을 보려면 PHP 중국어 웹사이트
AJAX 사용자 설명서열로 이동하세요.) 질문이 있으시면 아래에 메시지를 남겨주세요.
위 내용은 JS에서 AJAX 실행 시퀀스 문제 해결 세부 정보(솔루션 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!