日志文章

2007年06月15日 13:13:03

ajax实现 三步搞定

1、js文件(公用,不用改变):
var http_request = false;
var divUpdate ;
//
function send_request(method,url,content,responseType,callback,divUpdate ){
 this.divUpdate = divUpdate ;
 http_request = false;
 if(window.XMLHttpRequest){
  http_request = new XMLHttpRequest();
  if(http_request.overrideMimeType){
   http_request.overrideMimeType("text/xml");   
  }
 }else if(window.ActiveXObject){
  try{
   http_request = new ActiveXObject("Msxm12.XMLHTTP");
  }catch (e){
   try{
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
   }catch (e){
    
   }
  }
 }
 if(!http_request){
  window.alert("E XMLHttpReqeust");
  return false;
 }
 if(responseType.toLowerCase() == "text"){
  //http_request.onreadystatechange = processTextResponse;
  http_request.onreadystatechange = callback;
 }else if(resposeType.toLowerCase() == "xml"){
  //http_request.onreadystatechange == processTextResponse;
  http_request.onreadystatechange = callback;
 }else{
  window.alert("E1");
  return false; 
 }
 
 if(method.toLowerCase() == "get"){
  http_request.open("GET",url,true);
 }else if(method.toLowerCase() == "post"){
  http_request.open("POST",url,true);
  http_request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
 }else{
  window.alert("E2");
 }
 http_request.send(content);
}
//
function updateMsg()
{
 if(http_request.readyState == 4)
 {
  if(http_request.status == 200)
  {
   //alert(http_request.responseText);
   eval(this.divUpdate ).innerHTML = http_request.responseText;
  }
  else
  {
  }
 }
}

2、调用(记得引用,赋不同的参数),divUpdate 是要改变的div,updateMsg 回调函数(不用改变)
 function updateDiv(divUpdate )
   {
       eval(divUpdate ).innerHTML = "<table><tr><td>正在加载<td><tr><table>";
    send_request("GET",/query.jsp,null,"text",updateMsg,divUpdate );
 }

3、请求页面query.jsp
<%
out.println("返回内容");
%>

Tags: ajax  

类别: 无分类 |  评论(0) |  浏览(4741) |  收藏
发表评论