코드가 순서대로 실행되지 않는 문제를 해결하다

1394 단어
배경: 프로그램의 3대 구조 순서, 순환, 정상적인 상황에서 프로그램 실행이 이 세 가지 기본 구조에 어긋나지 않도록 선택
오류 코드:
DelSelect:function (){
							var i=0;
							var nid=0;
							$("input[name='nid[]']").each(function(){
								if($(this).is(":checked")==true){
									nid=$(this).val();
									$.post("/news/piliangdelete",{nid:nid},function(data){
										if(data==true){
											alert(data)
											i++;
											alert("         "+i+" ")
										}
											
									});
								}
							})
							alert("         "+i+" ")
					}

출력 결과 0 다음에 1, 2 순서대로 출력... 오류 원인: 비동기
간단하게 설명하자면 동기화 비동기 실행 어떤 방법이 동기화되면 이 방법을 실행하고 나머지 코드를 계속 실행하면 나머지 코드를 계속 실행하는 전제에서 이 방법을 실행합니다
해결 방법: 동기화
해결 코드:
DelSelect:function (){
					$.ajaxSettings.async = false;// ajax     
							var i=0;
							var nid=0;
							$("input[name='nid[]']").each(function(){
								if($(this).is(":checked")==true){
									nid=$(this).val();
									$.post("/news/piliangdelete",{nid:nid},function(data){
										if(data==true){
											alert(data)
											i++;
											//alert("         "+i+" ")
										}
											
									});
								}
							})
							alert("         "+i+" ")
					$.ajaxSettings.async = true;// ajax     
					}

좋은 웹페이지 즐겨찾기