AJAX原理

  大家都知道,ajax应用已经非常广泛了,随便举几个例子【验证用户名是否存在,无刷新评论,购物车,页面静态化加载数据等等】

今天就让我们来揭开ajax的面纱,了解其工作原理

 var xmlHttpRequest;// ajax异步数据交互的核心对象是XMLHttpRequest.

<script type='text/javascript'>

function ajaxapp(){

    var username=document.getElementById("txtusername").value;//使用dom的方式获文本框的值

    //1:创建XMLHttpRequest对象【最复杂的一步,建议copy改改】

     if(window.XMLHttpRequest){

        xmlHttpRequest=new XMLHttpRequest();//针对FF、Mozillar、Opera、Safari、IE7,8

      if(xmlHttpRequest.overrideMimeType){//针对某些特定版本的Mozillar浏览器的BUG进行修正

          xmlHttpRequest.overrideMimeType("text/html");

      }

     }else if(window.ActiveXObject){

     var activexName = [ "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];//两个可以用于创建XMLHttpRequest对象的控件名称,保存在一个js 数组中--排在前面的版本较新

     for ( var i = 0; i < activexName.length; i++) {
            try {
                /*
                 * 取出一个控件名进行创建,如果创建成功就终止循环 如果创建失败,抛出异常,然后可以继续循环,继续完善
                 */
                xmlHttpRequest = new AativeXObject(activexName[i]);
                break;
            } catch (e) {

            }
        }

     }

// 确认XMLHttpRequest对象是否创建成功
/*    if (!xmlHttpRequest) {
        alert("XMLHttpRequest创建失败!!!");
    } else {
        alert(xmlHttpRequest + "创建成功!!!")
    }
*/    /**
     *2、注册回调函数,注意书写格式
     *      需要将函数名注册、如果加上括号,就会把函数的返回值注册到httprequest中,这样不行  
     */
    xmlHttpRequest.onreadystatechange=callback;
     /**
      * 3、设置连接信息
      * 第一个参数表示HTTP的请求,支持所有的http的请求方式(get/post)
      * 第二个参数表示请求的url地址,get方式请求的参数也在url中
      * 第三个参数表示采用异步还是同步交互,true表示异步
      */
    //xmlHttpRequest.open("GET","ajaxapp.aspx?name="+userName,true);
    //post请求方式
    xmlHttpRequest.open("POST","servlet.AjaxServer",true);
    //post方式需要自己设置http的请求头
    xmlHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
    //post方式发送数据
    xmlHttpRequest.send("name="+userName)
       /**
        * 4、发送数据,开始和服务器进行交互
        *  同步方式下,send这句话会在服务器数据回来后才会执行
        *  异步方式下,send这句话会立即完成执行
        */
    //xmlHttpRequest.send(null);

}

//回调函数
function callback(){
    alert(xmlHttpRequest.readyState);
    /**
     * 5、接受响应数据
     */
    //判断对象的状态是交互完成
    if(xmlHttpRequest.readyState==4){
        //判断http的交互是否成功
        if(xmlHttpRequest.status==200){
            //获取服务器端返回的数据
            //获取服务器端输出的纯文本数据
            var responseText=xmlHttpRequest.responseText;
            //将数据显示在页面上,通过dom的方式找到 div标签所对应的元素节点
            var divNode=document.getElementById("result");
            //设置元素节点中的html内容
            divNode.innerHTML=responseText;
        }
    }
    
    
}

</script>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Ajax(Asynchronous JavaScript and XML)是一种在Web应用程序中创建交互式用户体验的技术。其原理是通过JavaScript在不重新加载整个页面的情况下,向服务器请求数据并更新页面的部分内容。 具体实现步骤如下: 1. 创建 XMLHttpRequest 对象 在 JavaScript 中,使用 XMLHttpRequest 对象来实现 Ajax。创建 XMLHttpRequest 对象的代码如下: ``` var xhr = new XMLHttpRequest(); ``` 2. 发送请求 使用 XMLHttpRequest 对象的 open() 和 send() 方法来发送请求。代码如下: ``` xhr.open('GET', 'url', true); xhr.send(); ``` 其中,第一个参数是请求类型(GET 或 POST),第二个参数是请求地址,第三个参数是指定请求是否异步执行。 3. 接收数据 当服务器响应请求时,会触发 XMLHttpRequest 对象的 onreadystatechange 事件。通过判断 readyState 属性和 status 属性的值,可以确定服务器响应的状态。如果响应成功,可以通过 responseText 或 responseXML 属性获取服务器返回的数据。代码如下: ``` xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { var data = xhr.responseText; // 处理返回的数据 } } ``` 4. 处理数据 根据服务器返回的数据格式,使用 JavaScript 对返回的数据进行处理,并将结果更新到页面上。 以上就是 Ajax 的基本原理和实现步骤。需要注意的是,Ajax 可能会存在跨域问题,需要在服务器端进行相应的配置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值