>  기사  >  웹 프론트엔드  >  JS에서 AJAX 실행 시퀀스 문제 해결 세부 정보(솔루션 포함)

JS에서 AJAX 실행 시퀀스 문제 해결 세부 정보(솔루션 포함)

寻∝梦
寻∝梦원래의
2018-09-10 15:17:292325검색

이 글은 주로 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:

첫 번째 방법

이런 문제가 발생하는 이유는 AJAX가 비동기 요청을 사용하기 때문입니다. 1을 먼저 팝업한 다음 2를 팝업하려면 AJAX를 동기화로 변경하기만 하면 됩니다. 즉, async를 false로 변경하면 됩니다

이런 식으로 AJAX가 실행되지 않은 경우 페이지가 일시 중지된 상태로 나타나고 실행이 중지됩니다. 🎜#두 번째 방법

두 번째 방법이 더 일반적으로 사용됩니다.

예를 들어 다음 코드

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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