Ajax使用的四大步骤

 

<script type="text/javascript">
    var xhr;
    function getStudent(obj){
    
       if(window.ActiveXObject){   //创建代理对象
           xhr=new ActiveXObject("msxml2.xmlhttp");
       }else{
           xhr=new XMLHttpRequest();
       }
      url="<%=basePath%>ajaxervlet?cat="+new Date().getTime()+"&teacherId="+obj.value;
      xhr.onreadystatechange=function(){
         if(xhr.readyState==4){
            if(xhr.status==200){
               fox=eval("("+xhr.responseText+")");//接收servlet(或者action)返回的json串,并利用eval转换为js Object
               alert(xhr.responseText);
               $table=document.getElementById("t");//通过浏览器的内置对象document获得建一个js的table对象
               $table.innerText="";   //每次点击时,把表清空。
               $tbody=document.createElement("<tbody>");//通过浏览器的内置对象document创建一个tbody js对象
               $table.appendChild($tbody);//将tbody添加到table中,从而形成一个空的table
               $table.style.display="block";//通过js来操作css的样式,使得原来被隐藏(none)的table显示出来
               mydata=fox.students;//获取包含在js中的数组对象
               
               for(i=0;i<mydata.length;i++){//循环行  【tr】
                   $tr=document.createElement("<tr>");
                 for(j=0;j<3;j++){//循环列【td】
                   $td=document.createElement("<td>");
                   switch(j){
                     case 0:
                       $td.innerText=mydata[i].name;break;  //
                     case 1:
                       $td.innerText=mydata[i].sex;break;
                     case 2:
                       $td.innerText=mydata[i].age;break;
                    } 
                    $td.className="mytd";  //加样式 
                    $tr.appendChild($td);
                 }  
                 $tbody.appendChild($tr);
                 
               }
            }
         }
      }
      
      xhr.open("GET",url,false);
      xhr.send(null);
      
    }
    </script>

Ajax使用的四大步骤

经过总结使用Ajax可以分为四步,分别如下:

1:创建引擎(xmlHttpRequest对象)

不同的浏览器创建 XMLHttpRequest 对象的方法是有差异的,针对IE使用ActiveXObject,针对其他浏览器用xmlHttpRequest,但是如果针对不同版本的的浏览器可以使用“try and catch”语句来进行创建

2:事件处理函数,处理服务器的响应结果。

onreadystatechange事件:该事件处理函数由服务器触发,而不是用户,相当于监听,监听服务器每个动作

readyState 属性表示Ajax请求的当前状态。它的值用数字代表。分别是:

0 代表未初始化。 还没有调用 open 方法
1 代表正在加载。 open 方法已被调用,但 send 方法还没有被调用
2 代表已加载完毕。send 已被调用。请求已经开始
3 代表交互中。服务器正在发送响应
4 代表完成。响应发送完毕

status 属性表示状态码,也是用数字表示,分别是:

404 没找到页面(not found)
403 禁止访问(forbidden)
500 内部服务器出错(internal service error)
200 一切正常(ok)
304 没有被修改(not modified)(服务器返回304状态,表示源文件没有被修改 )

responseText属性包含了从服务器发送的数据

每次 readyState 值的改变,都会触发 readystatechange 事件

3:打开一个连接open(method, url, asynch)

允许客户端用一个Ajax调用向服务器发送请求。

三个参数的含义如下:

method:请求类型,类似 “GET”或”POST”的字符串
url:请求路径字符串,指向所请求的服务器上的那个文件(servlet,jsp,action)
asynch:表示请求是否要异步传输,默认值为true(异步)

4:发送数据send(data)

data:向服务器发的数据,如果是get方式data为null就行,即使传了参数,服务器也收不到。如果为post方式在send(data)之前还要设置requestHeader("Content-Type","application/x-www-form-urlencoded")。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值