天天看點

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[0].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("##");  

繼續閱讀