lgs0626 发表于 2013-1-29 11:32:57

ajax的两种常用调用方式

方式1:
Js代码 
//请求js  
<script language="javascript">  
var _object;  
var xmlhttp = null;  
var interval = null;  
var rtnData = new Array();  
var btype;  
 
//判断浏览器类型  
//ie和firefox对ajax请求回调函数的调用方式不同  
function getOs(){   
 var OsObject = "";   
 if(navigator.userAgent.indexOf("MSIE")>0) {  
  return "MSIE"; //IE浏览器  
 }   
 if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){   
  return "Firefox"; //Firefox浏览器  
 }   
 if(isSafari=navigator.userAgent.indexOf("Safari")>0) {  
  return "Safari"; //Safan浏览器  
 }   
 if(isCamino=navigator.userAgent.indexOf("Camino")>0){   
  return "Camino"; //Camino浏览器  
 }   
 if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){   
  return "Gecko"; //Gecko浏览器  
 }  
}  
 
 
function loadXMLDoc(xmlName,dataTypeId){  
 //动态请求调用地址  
 var ivkUrl = "<%=path%>/jsp/DataRequest/autoFindRtnDataGTS.jsp?xmlName=" + xmlName + "&"+ Math.random();  
 //alert("** ivkUrl = "+ ivkUrl);  
 
 if (window.XMLHttpRequest){  
  xmlhttp=new XMLHttpRequest();  
 }else if (window.ActiveXObject){  
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");  
 }  
 
 if (xmlhttp){  
  xmlhttp.open("GET",ivkUrl,false);  
 
     btype = getOs();  
     if(btype != "Firefox"){//IE回调state_Change接口  
      xmlhttp.onreadystatechange = state_Change;  
  }        
  xmlhttp.send(null);  
 
  if(btype == "Firefox"){//Firefox做特殊处理  
   var dataTypeId = "<%=dataTypeId%>";        
   if(dataTypeId == 1){  
    updatePage();//页面逻辑  
   }  
  }  
 }else{  
  alert("Your browser does not support XMLHTTP");  
 }  
 
 //每隔10秒调用1次  
 interval = window.setTimeout("loadXMLDoc('<%=xmlName%>','<%=dataTypeId%>')", 10000);  
 if(rtnData.length == 1 && rtnData.downUrl){//1个下载链接  
  window.clearTimeout(interval);  
 }  
 if(rtnData.length > 1){//多个下载链接  
  window.clearTimeout(interval);  
 }  
}  
 
 
function state_Change(){  
 var dataTypeId = "<%=dataTypeId%>";  
 
 if (xmlhttp.readyState==4){  
  if (xmlhttp.status==200){  
   if(dataTypeId == 1){  
    updatePage();//页面逻辑  
   }  
  }  
 }  
}  
 
//js中解析返回数组数据  
rtnData = eval(xmlhttp.responseText);  
 
 
方式2:
 
Js代码 
if (xmlhttp){  
 try{  
  xmlhttp.open("POST",'DateValidator.do',false);  
     xmlhttp.send(currStartDate+"##"+currEndDate);//参数传递  
 }catch (exception){  
  alert(exception);  
 }  
 
 //js中解析返回数组数据  
 rtnData = xmlhttp.responseText;  
 ....        
}else{  
 alert("Your browser does not support XMLHTTP");  
}  
 
 
java端处理:
Java代码 
String dateString = (String)requestObj.getData("REQUEST_XMLHTTP");//取得ajax提交的参数  
String[] dateArray = dateString.split("##");  
 
页: [1]
查看完整版本: ajax的两种常用调用方式