비 즈 니스 암호 검사, AJAX 비동기 검사 시간 의아

프로젝트 에서 저 는 AJAX 비동기 검 사 를 사용 하여 업무 비밀번호 가 정확 한 지, 로 컬 환경 에 문제 가 없 는 지 검 사 했 습 니 다. 그러나 실제 환경 으로 끌 어 당 겼 습 니 다. 항주 서버 에 문제 가 생 겨 input 상자 의 blur () 이벤트 에 비동기 검 사 를 했 습 니 다. 저장 단 추 를 누 르 면 input 상자 가 초점 을 잃 고 업무 비밀번호 가 정확 합 니 다. 즉, 통과 할 수 있 습 니 다.그러나 실제 환경 서버 가 데 이 터 를 되 돌려 주 는 시간 이 일정 하지 않 기 때문에 데 이 터 를 되 돌려 주지 않 은 것 이 나타 나 면 이미 폼 을 제출 했다.
 
\ # 내 코드
<script type="text/javascript">
$(document).ready(function(){
	var empAlterReason = true;
	var checkPassword2 = true;
		
	/*    */
	$("#password2").blur(function(){
		var password2 = $("#password2").val();
		var textPassword2 = $("#textPassword2");
		textPassword2.html("");
		
		if( password2=='' )
		{
			textPassword2.html("<font color='red'>        !</font>");
			checkPassword2 = false;
			return;
		}
		if( password2!='' )
		{
			if( passValidate(password2) )
			{
				textPassword2.html("<font color='red'>        !</font>");
				checkPassword2 = false;
				return;
			}
			else
			{
				var yz=$.ajax({
					type:'post',
					url:'validatePwd2_checkPwd2?password2='+password2,
					data:{},
					cache:false,
					dataType:'json',
					success:function(data){
						if( data.msg =="false" ) //     false,  validatePassword2    pwd2Error,    ,        
						{
							textPassword2.html("<font color='red'>       !</font>");
							$("#validatePassword2").val("pwd2Error");
							checkPassword2 = false;
							return;
						}
					},
					error:function(){}
				});
			}
		}
		$("#validatePassword2").val("pwd2Success");
		checkPassword2 = true;
		return;
	});

	/*    */
	$("#alterReason").blur(function(){
		var textRoleAlterReason = $("#textRoleAlterReason");
		textRoleAlterReason.html("");
		var alterReason = $("#alterReason").val();
		if(alterReason=='')
		{
			textRoleAlterReason.html("<font color='red'><br>        !</font>");
			empAlterReason = false;
			return;
		}
		if(alterReason=='   ')
		{
			textRoleAlterReason.html("<font color='red'><br>       !</font>");
			empAlterReason = false;
			return;
		}
		if(illegalChar(alterReason))
		{
			textRoleAlterReason.html("<font color='red'><br>            !</font>");
			empAlterReason = false;
			return;
		}
		empAlterReason = true;
		return;
	});
	
	/*  ,    */
	$("#mybutton1").click(function(){
		var validatePassword2 = $("#validatePassword2").val();
		$("input,textarea").blur();//        ,          ,validatePassword2      ,  'pwd2Success',            ,     query()       
		if(validatePassword2=='pwd2Success' && checkPassword2==true && empAlterReason == true){
			query();
		}
	});
});

	function resetForm()
	{
		$("#alterReason").val("");
		$("#password2").val("");
		$("#textPassword2").html("");
		$("#textRoleAlterReason").html("");
	}


	function calBack(){
		history.back(-1);
	}
  	
	function query() {
		if(document.getElementById('roleName').value  == ""){alert('        !'); return false;}else{ }
		if(document.getElementById('alterReason').value  == ""){alert('        !'); return false;}else{ }
		//           
		var len= document.getElementById("roleList").length;
		var tempop="";
	    for(var i=0;i<len;i++){
			tempop = tempop +";"+ document.getElementById("roleList").options[i].value;
	    }
	    
		var confirm = "          ?";
		if(window.confirm(confirm)){
			document.getElementById('privSelect').value=tempop;
			document.form1.action = "<%=path%>/Role_impower";
			document.form1.submit();
			alert("    !");
		}
	}
</script>

 
\ # jsp 페이지 코드
	<tr>
		<td colspan="2" class="txtright" >    :</td><td class="txtleft">
			<input type="password" name="password2" id="password2" maxlength="18" class="inputbox"/>
			<input type="hidden" id="validatePassword2" value="pwd2Success"/>
			<span id="textPassword2"></span>
		</td>
	</tr>    		
	
	<tr>
		<td colspan="2" class="txtright"></td><td class="txtleft">
			<input type="button" id="mybutton1" value="    " class="btn"/> &nbsp;&nbsp;&nbsp;&nbsp;
			<input type="button" value="    " onclick="resetForm()" class="btnalt"/>&nbsp;&nbsp;&nbsp;&nbsp;
			<input type="button" value="    " onclick="history.go(-1);" class="btnalt"/>
		</td>
	</tr>
	</table>
		</td>
	</tr>

 
\ # \ # \ # # \ # 주의: 이 문 제 는 본 컴퓨터, 내부 네트워크 에 문제 가 없습니다. 속도 가 빠 르 기 때문에 비동기 시간 을 고려 할 필요 가 거의 없 지만 실제 서버 는 안 됩 니 다. 응답 시간 을 되 돌려 주 는 것 이 느 릴 수 있 습 니 다.  명심 하 세 요!!!

좋은 웹페이지 즐겨찾기