DDR爱好者之家 Design By 杰米

1.什么是AJAX"text-align: center"> 谈谈Ajax原理实现过程

测试代码如下:

     创建xmlHttpRequest对象:

function createXMLHttpRequest() {
//表示当前浏览器不是ie,如ns,firefox
if(window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
 }
  客户端事件触发:  
   function validate(field){
   if(trim(field.value).length!=0)
   {
 //创建XMLHttpRequest
 createXMLHttpRequest() ;
 var url="user_validate.jsp" + trim(field.value)+"&timestampt="+new Date().getTime();
 // alert(url);
 xmlHttp.open("GET", url, true);
 //方法地址。处理完成后自动调用,回调。
 xmlHttp.onreadystatechange=callback ;
 xmlHttp.send(null);//将参数发送到Ajax引擎
 } else{ document.getElementById("userIdSpan").innerHTML = ""; }  
 }

结果返回操作:

function callback(){
 {  
 alert(xmlHttp.readyState);
 if(xmlHttp.readyState==4){ //Ajax引擎初始化
 if(xmlHttp.status==200){ //http协议成功
 //alert(xmlHttp.responseText);
 document.getElementById("userIdSpan").innerHTML = "<font color='red'>" + xmlHttp.responseText + "</font>";
 }else
   {
    alert("请求失败,错误码="+xmlHttp.status);
   }    
 }
 }

注意:

      onreadyStateChange事件,当readyState状态值发生改变就会触发此事件。

      其中,xmlHttpRequest提交http请求的过程中,readyState历经五个状态值(0,1,2,3,4),所以callback函数中的alert(xmlHttp.readyState)则会不断输出1,2,3,4。其中0状态不会输出,因为0状态的时候并不执行此事件。

PS:当时在eslipse默认web 浏览器中输出的readyState状态顺序一直是:1,3,4,2。当时很纠结,因为状态值含义的分析,结果应该是1,2,3,4。后来折腾半天,才发现是浏览器的问题。不同的浏览器,执行的结果是不同的。使用IE浏览器测试,结果是1,2,3,4。哈哈,真的只有想不到,没有搜不到的。

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米