• 异步交互之Ajax原生编写


    研究ajax的核心对象!

    利用ajax实现异步交互无非4步:

    1.创建ajax核心对象

    2.与服务器建立连接

    3.向服务器发送请求

    4.接收服务器响应的数据

    看似神秘的异步交互当明确这4步后,也许在大家脑海里已经有了初步的思路了

    首先我们创建ajax的核心对象,由于浏览器的兼容问题我们在创建ajax核心对象的时候不得考虑其兼容问题,因为要想实现异步交互的后面步骤都基于第一步是否成功的创建了ajax核心对象.

     function getXhr(){
                // 声明XMLHttpRequest对象
                var xhr = null;
                // 根据浏览器的不同情况进行创建
                 if(window.XMLHttpRequest){
               // 表示除IE外的其他浏览器
                         xhr = new XMLHttpRequest();
                 }else{
                     // 表示IE浏览器
                     xhr = new ActiveXObject('Microsoft.XMLHttp');
                 }
                 return xhr;
     }
     // 创建核心对象
     var xhr = getXhr();            

    通过上述代码我们已经成功的创建了ajax核心对象,我们保存在变量xhr中,接下来提到的ajax核心对象都将以xhr代替.

    第二步就是与服务器建立连接,通过ajax核心对象调用open(method,url,async)方法.

    open方法的形参解释:

    method表示请求方式(get或post)

    url表示请求的php的地址(注意当请求类型为get的时候,请求的数据将以问号跟随url地址后面,下面的send方法中将传入null值)

    async是个布尔值,表示是否异步,默认为true.在最新规范中这一项已经不在需要填写,因为官方认为使用ajax就是为了实现异步.

    xhr.open("get","01.php?user=xianfeng");//这是get方式请求数据
    xhr.open("post","01.php");//这是以post方式请求数据

    第三步我们将向服务器发送请求,利用ajax核心对象调用send方法

    如果是post方式,请求的数据将以name=value形式放在send方法里发送给服务器,get方式直接传入null值

    xhr.send("user=xianfeng");//这是以post方式发送请求数据
    xhr.send(null);//这是以get方式

     第四步接收服务器响应回来的数据,使用onreadystatechange事件监听服务器的通信状态.通过readyState属性获取服务器端当前通信状态.status获得状态码,利用responseText属性接收服务器响应回来的数据(这里指text类型的字符串格式数据).后面再写XML格式的数据和大名鼎鼎的json格式数据.

    xhr.onreadystatechange = function(){
                        // 保证服务器端响应的数据发送完毕,保证这次请求必须是成功的
                                if(xhr.readyState == 4&&xhr.status == 200){
                              // 接收服务器端的数据
                              var data = xhr.responseText;
                              // 测试
                              console.log(data);
                                  }  
                              };
  • 相关阅读:
    Log4Net_LayOut
    各种数据库的批量插入操作_Oracle
    关于各种数据库 Insert时同时取到Id的操作
    一个小型的DBHelper的诞生(1)
    设计模式:重读(抽象工厂模型)
    设计模式:重读(单例)
    设计模式:重读(导读)
    17 1
    5
    oj 2.2
  • 原文地址:https://www.cnblogs.com/xianfeng90/p/5147006.html
Copyright © 2020-2023  润新知