读书人

Ajax同步跟异步调用

发布时间: 2012-09-01 09:33:03 作者: rapoo

Ajax同步和异步调用

ajax函数(同步方式):function queryIsSameLevel(){var ID_MT_OPERATIONTYPE = document.getElementById('ID_MT_OPERATIONTYPE').value;var url = '<%=request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() %>'var executeURL = url+"/common/mt/isSameLevel.do?id="+ID_MT_OPERATIONTYPE;var xmlhttp;if (window.XMLHttpRequest){  xmlhttp= new XMLHttpRequest();}else{  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  }  //同步方式xmlhttp.open("POST",executeURL,false);xmlhttp.send();  if(xmlhttp.readyState==4 && xmlhttp.status==200){//alert("你大爷" + xmlhttp.responseText);responseTextVal = xmlhttp.responseText;responseTextVal = responseTextVal.replace('{','');responseTextVal = responseTextVal.replace('}','');var  index = responseTextVal.indexOf(":");responseTextVal = responseTextVal.substring(index+1);responseTextVal = responseTextVal.replace('"','');responseTextVal = responseTextVal.replace('"','');}}异步方式:function queryIsSameLevel(){var ID_MT_OPERATIONTYPE = document.getElementById('ID_MT_OPERATIONTYPE').value;var url = '<%=request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() %>'var executeURL = url+"/common/mt/isSameLevel.do?id="+ID_MT_OPERATIONTYPE;var xmlhttp;if (window.XMLHttpRequest){  xmlhttp= new XMLHttpRequest();}else{  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  }  //异步方式xmlhttp.open("POST",executeURL,true);xmlhttp.send();  //异步方式添加回调函数xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState==4 && xmlhttp.status==200){//alert("你大爷" + xmlhttp.responseText);responseTextVal = xmlhttp.responseText;responseTextVal = responseTextVal.replace('{','');responseTextVal = responseTextVal.replace('}','');var  index = responseTextVal.indexOf(":");responseTextVal = responseTextVal.substring(index+1);responseTextVal = responseTextVal.replace('"','');responseTextVal = responseTextVal.replace('"','');}}}如果有一个方法B()调用上述两个方法queryIsSameLevel(),异步方式:有可能回调函数的执行比B函数中的代码执行要晚同步的方式:等方法queryIsSameLevel()全部执行完后再去执行方法B()中的代码            同步方式没有回调函数,执行完send()方法后就进行状态的判断参考资料:http://hi.baidu.com/iamgongjunhao/blog/item/e4357a501ae429748535242f.html

读书人网 >Ajax

热点推荐