AJAX 多次发送异步请求的 XmlHttpRequest 对象的设置

业务需求:

第一步:加载商品类别,点“加载种类” 按钮

 

 

第二步:选择商品种类显示该类别的所有商品,也是异步请求:

 

 

这时要注意xmlHttpRequest的创建及 onreadystatechange 回调函数的设置

<html>
  <head>
    <base href="<%=basePath%>">
    <title>My JSP 'index.jsp' starting page</title>

<script type="text/javascript">

 <script type="text/javascript">
  var xmlhttp; 
  function createXmlHttp(){
   if(window.ActiveXObject){
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   } 
   else{
    xmlhttp=new XmlHttpRequest();
   }
  }

  //第一次异步请求
  function loadCategory(){
   createXmlHttp();
   xmlhttp.onreadystatechange=getCategory;
   xmlhttp.open("GET","show!findAllCategories.action",true);
   xmlhttp.send();
  }
  function getCategory(){
   if(xmlhttp.readyState==4){
    if(xmlhttp.status==200){
     var sel=document.getElementById("div1");
     sel.innerHTML=xmlhttp.responseText;
    }
   }
  }
   //第二次异步请求
  function getData(){
   createXmlHttp();//另一个xmlhtpp对象,必须重新创建,否则和第一个相同
   xmlhttp.onreadystatechange=getProduct;
   document.getElementById("div2").innerHTML="";
   xmlhttp.open("GET","showPro!findProByCategoryId.action?id="+document.getElementById("dept").value,true);
   xmlhttp.send();
  }
  function getProduct(){
   if(xmlhttp.readystate==4){
    if(xmlhttp.status==200){
     var sel1=document.getElementById("div2");
     sel1.innerHTML=xmlhttp.responseText;
    }
   }
  }
 </script>

 

 </head>
 
  <body>
    <div id="div1">
     <input type="button" value="加载种类" οnclick="loadCategory()">
    </div>
    <div id="div2"></div>
  </body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值